我正在尝试使用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/

10-13 06:47