尝试使用参数将值插入我的SQL Server数据库时出现以下错误。
SqlParameter Param1 = new SqlParameter("@test", SqlDbType.VarChar);
Param1.Value = "test";
SqlCommand AddtoDb = new SqlCommand("INSERT INTO [temp] VALUES (@test)", conn);
AddtoDb.ExecuteNonQuery();
这是我得到的错误:
System.Data.dll中发生类型'System.Data.SqlClient.SqlException'的第一次机会异常
数据库只有1列接受
varChar(50)
。我知道连接正在工作,因为如果执行以下操作,则数据库会收到输入:SqlCommand AddtoDb = new SqlCommand("INSERT INTO [temp] VALUES ('test')", conn);
AddtoDb.ExecuteNonQuery();
我究竟做错了什么?
最佳答案
您创建了参数,但实际上并没有以任何方式将其与命令关联。您需要将参数添加到命令的Parameters
集合中:
SqlCommand AddtoDb = new SqlCommand("INSERT INTO [temp] VALUES (@test)", conn);
SqlParameter Param1 = new SqlParameter("@test", SqlDbType.VarChar);
Param1.Value = "test";
AddtoDb.Parameters.Add(Param1);
AddtoDb.ExecuteNonQuery();
或更简单地说:
SqlCommand AddtoDb = new SqlCommand("INSERT INTO [temp] VALUES (@test)", conn);
AddtoDb.Parameters.AddWithValue("@test", "test");
AddtoDb.ExecuteNonQuery();
关于c# - SqlParameter无法与INSERT语句一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17372579/