C#MySql参数化查询使long变为null
代码基于 错误是123456被视为空 消息=列“拍卖密钥”不能为空 我尝试更改my.ini中的“strict”设置,但没有任何区别C#MySql参数化查询使long变为null,c#,mysql,parameterized,C#,Mysql,Parameterized,代码基于 错误是123456被视为空 消息=列“拍卖密钥”不能为空 我尝试更改my.ini中的“strict”设置,但没有任何区别 请提供帮助。好吧,您可以将参数添加到命令中,然后实例化一个新命令: cmd.Parameters.AddWithValue("@my_auc_id", 123456); cmd = new MySqlCommand(sqlInsertOrUpdateAuction, dbConnection); 如果这样做,该命令将不再具有@my_auc_id的值。请尝试切换这两
请提供帮助。好吧,您可以将参数添加到命令中,然后实例化一个新命令:
cmd.Parameters.AddWithValue("@my_auc_id", 123456);
cmd = new MySqlCommand(sqlInsertOrUpdateAuction, dbConnection);
如果这样做,该命令将不再具有@my_auc_id的值。请尝试切换这两行:
cmd = new MySqlCommand(sqlInsertOrUpdateAuction, dbConnection);
cmd.Parameters.AddWithValue("@my_auc_id", 123456);
希望这能有所帮助。您只需执行以下操作即可缓解问题:
using(var connection = new MySqlConnection(dbConnection))
{
connection.Open();
using(var command = new MySqlCommand(createTableQuery, connection))
{
command.ExecuteNonQuery();
}
using(var command = new MySqlCommand(insertOrUpdate, connection))
{
command.Parameters.Add("..", SqlDbType = SqlDbType.Int).Value = 123456;
command.ExecuteNonQuery();
}
}
请记住,ExecuteNonQuery
如果成功运行,将返回零或一。另外,您可能需要手动指定SqlDbType
。以避免错误地推断SQL。此外,这将正确地限定您的MySqlCommand
,因此您可以正确地利用它进行查询
根据文档,它确实实现了
IDisposable
来利用using
块。这可以确保您再次实例化MySqlCommand
。谢谢大家-在添加参数之前放置命令修复了它。
using(var connection = new MySqlConnection(dbConnection))
{
connection.Open();
using(var command = new MySqlCommand(createTableQuery, connection))
{
command.ExecuteNonQuery();
}
using(var command = new MySqlCommand(insertOrUpdate, connection))
{
command.Parameters.Add("..", SqlDbType = SqlDbType.Int).Value = 123456;
command.ExecuteNonQuery();
}
}