您好我在下面使用.NET Framework 1.1编写的代码
SqlCommand cmd;
string strQuery =
"INSERT INTO EmployeeDetails (EmployeeID,ReasonOfChange) VALUES (@EmployeeID,@ReasonOfChange)";
cmd = new SqlCommand(strQuery);
cmd.Parameters["@EmployeeID"].Value = EmployeeID;
cmd.Parameters["@ReasonOfChange"].Value = ReasonOfChange;
int rowsAffected = cmd.ExecuteNonQuery();
但它给了我错误。
错误详情为:
带有ParameterName' @ EmployeeID'的SqlParameter不包含在此SqlParameterCollection中。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 异常详细信息:System.IndexOutOfRangeException:带有ParameterName' @ EmployeeID'的SqlParameter不包含在此SqlParameterCollection中。 来源错误:
cmd = new SqlCommand(strQuery);
cmd.Parameters["@EmployeeID"].Value = EmployeeID;
您能否帮助我在.NET Framework 1.1中编写查询的正确方法。提前谢谢。
答案 0 :(得分:2)
出现什么错误?看起来你没有指定与数据库的连接来执行命令?虽然你可能只是从你的代码片段中省略了......
答案 1 :(得分:0)
将EmployeeID
的控件名称或变量名称放在下面,而不是列名。
> cmd.Parameters.AddWithValue("@EmployeeID", (EmployeeID)textbox.text);
答案 2 :(得分:0)
试试这个
cmd.Parameters.AddWithValue("@EmployeeID", (EmployeeID)textbox.text);
cmd.Parameters.AddWithValue("@ReasonOfChange", (ReasonOfChange)textbox.text);
或尝试这样:
cmd.Parameters.Add("@EmployeeID", SqlDbType.Int,15);
cmd.Parameters.Add("@ReasonOfChange", SqlDbType.NVarChar,15);
答案 3 :(得分:0)
我已经解决了这个问题:
我将代码更改为:
cmd.Parameters.Add("@EmployeeID",EmployeeID);
cmd.Parameters.Add("@ReasonOfChange",ReasonOfChange);
还
cmd = new SqlCommand(strQuery,Connection);
以前连接缺失。
感谢您的宝贵意见。