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);