SQL查询错误 – “列不能为空”
我有一个SQL查询:
String S = Editor1.Content.ToString(); Response.Write(S); string sql = "insert into testcase.ishan(nmae,orders) VALUES ('9',@S)"; OdbcCommand cmd = new OdbcCommand(sql, myConn); cmd.Parameters.AddWithValue("@S", S); cmd.ExecuteNonQuery();
错误:在System.Data.Odbc.OdbcConnection.HandleError中,列’orders’不能为null
从手册 :
当CommandType设置为Text时,.NET Framework数据提供程序for ODBC不支持将命名参数传递给SQL语句或OdbcCommand调用的存储过程。 在其中任何一种情况下,请使用问号(?)占位符。 例如:
SELECT * FROM Customers WHERE CustomerID = ?
OdbcParameter对象添加到OdbcParameterCollection的顺序必须直接对应于命令文本中参数的问号占位符的位置。
用这个:
string sql = "insert into testcase.ishan(nmae,orders) VALUES ('9', ?)"; OdbcCommand cmd = new OdbcCommand(sql, myConn); cmd.Parameters.AddWithValue("you_can_write_anything_here_its_ignored_anyway", S); cmd.ExecuteNonQuery();
它会对你有所帮助
cmd.Parameters.Add("@S", OdbcType.Char, S);