C# SQL查询错误-“;列不能为空";
我有一个SQL查询:C# SQL查询错误-“;列不能为空";,c#,asp.net,sql,mysql,C#,Asp.net,Sql,Mysql,我有一个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("@
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处不能为空
从:
当CommandType设置为Text时,.NET Framework 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);
我已经在字符串中有了值。但是它没有进入sql查询。是列名真正的nmae还是它实际的名称?以及如何定义“?”的值。query如何知道是什么?@user:向集合中添加一个参数。它将从添加的顺序知道:添加的第一个参数是第一个
?
,等等。它在我复制的引号中。与“System.Data.Odbc.OdbcParameterCollection.Add(string,System.Data.Odbc.OdbcType,int)”匹配的最佳重载方法具有一些无效参数