我有两个函数,一个运行良好,另一个运行不正常,除了非运行代码在数据库请求中有一个 WHERE 之外,代码是相同的,我只是无法让它运行,我很绝望。 cID 是提供给函数的字符串,这是目前唯一正确的字符串
Geotag c = new Geotag();
String myConnection = WebConfigurationManager.ConnectionStrings["mydatabase"].ConnectionString;
MySqlConnection myConn = new MySqlConnection(myConnection);
String strSQL = "SELECT Id,geotag,item,date,nameofplace FROM geolist WHERE Id = 'cID';";
MySqlCommand myCommand = new MySqlCommand();
myCommand.Connection = myConn;
myCommand.CommandText = strSQL;
try
{
myConn.Open();
MySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
myReader.Read();
while (myReader.Read())
{
我的阅读器是空的,所以它会跳过并继续……为什么?我尝试了我认为的一切,比如 cID 字符串周围没有 ' '。
如果我删除 WHERE = cID,我将直接返回一个对象,它是列表中的第一个对象,所以我知道代码有效。数据库具有匹配的字符串,即使我将字符串硬编码到 WHERE 中,它仍然无法工作,所以它是我在这里遗漏的其他东西。
最佳答案
你正在比较一个 Id 字段,所以你可能会返回一条记录,但是你调用了 Read
方法两次
myReader.Read();
while (myReader.Read()) // <--- empty
关于c# - 无法识别 mysql 请求中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20361208/