我正在将 Mysql 数据库客户端更改为 System.data.sqlclient 中的 mysql.data.dll 之一。
但在使用 sqlclient 之前,我可以这样做:
public long insertQuery()
{
long lastInsertedId = 0L;
try
{
lastInsertedId = (long)command.ExecuteScalar();
}
catch (Exception exception)
{
Exeption.WriteMySQLError(exception.ToString());
}
return lastInsertedId;
}
dbClient.setQuery("INSERT INTO items (base_item, user_id) VALUES (" + BaseItem + ", " + UserId + ")");
Id = (uint)dbClient.insertQuery();
然后我是否得到了我刚刚插入但使用相同代码和来自 MySql.Data.MySqlClient.MySqlCommand 的 ExecuteScalar() 的 itemId 我得到一个空异常。那么这如何与 MySqlCommand 一起工作?
命令来自于此:
private MySql.Data.MySqlClient.MySqlCommand Command;
由于史蒂夫继承了固定代码,因此修复了它。
public long insertQuery()
{
Command.CommandText += "; SELECT LAST_INSERT_ID()";
long lastInsertedId = 0L;
try
{
lastInsertedId = Convert.ToInt32(Command.ExecuteScalar().ToString());
}
catch (Exception exception)
{
Console.WriteLine("Nou er is een error in insertquery! :" + exception.ToString());
}
return lastInsertedId;
}