我正在尝试使用C#获取表的最后一行,但它似乎不起作用,这是我的代码:
MySqlConnection cnnGetID = new MySqlConnection(Global.connectionString);
cmd = "SELECT ContactID FROM Contacten ORDER BY ContactID DESC LIMIT 1";
MySqlCommand cmdGetID = new MySqlCommand(cmd, cnnGetID);
cnnGetID.Open();
string contactID = cmdGetID.ExecuteNonQuery().ToString();
MessageBox.Show(contactID);
cnnGetID.Close();
它返回的值为-1,而应返回59。
奇怪的是,当我在phpmyadmin中运行此命令时,我确实得到了59。
关于C#为什么不返回正确值但phpmyadmin是的任何想法?
编辑:解决了问题,应该使用ExecuteScalar()。看起来我凝视着显示器已经太久了...
最佳答案
您需要使用ExecuteScalar
而不是ExecuteNonQuery
。
MySqlConnection cnnGetID = new MySqlConnection(Global.connectionString);
cmd = "SELECT ContactID FROM Contacten ORDER BY ContactID DESC LIMIT 1";
MySqlCommand cmdGetID = new MySqlCommand(cmd, cnnGetID);
cnnGetID.Open();
string contactID = cmdGetID.ExecuteScalar().ToString();
MessageBox.Show(contactID);
cnnGetID.Close();
这样可以解决您的问题。
关于c# - C#MySQL Order By返回-1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43292033/