将数据从C#插入SQL Server时出错
本文关键字:Server 出错 SQL 插入 数据 | 更新日期: 2023-09-27 18:21:59
我正在编写一个简单的程序,将数据插入表中。不断得到这个错误:
System.Data.dll中发生类型为"System.InvalidOperationException"的未处理异常
其他信息:ExecuteNonQuery:连接属性尚未初始化。
代码:
SqlConnection con = new SqlConnection("Server=ServerName;Database=byte;User=USR;Pwd=PSW;");
con.Open();
string INstring = "INSERT INTO BWDrfid(RFID,EmpNum) VALUES ('" + RFID + "', '" + EID + "')";
SqlCommand cmd = new SqlCommand(INstring);
cmd.ExecuteNonQuery();
con.Close();
您没有连接命令和连接。改为使用此过载:
SqlCommand cmd = new SqlCommand(INstring, con);
首先,您还没有连接到SqlCommand,这正是错误告诉您的。
SqlCommand cmd = new SqlCommand(INstring, con);
更重要的是,参数化了查询,您对SQL注入持开放态度。还要考虑将SqlCommand
和SqlConnection
对象包含在using
语句中。
using (SqlConnection con = new SqlConnection("Server=ServerName;Database=byte;User=USR;Pwd=PSW;"))
{
con.Open();
string INstring;
INstring = "INSERT INTO BWDrfid(RFID,EmpNum) VALUES (@RFID, EID)";
using (SqlCommand cmd = new SqlCommand(INstring, con))
{
cmd.Parameters.Add(new SqlParameter("@RFID", SqlDbType.VarChar).Value = RFID);
cmd.Parameters.Add(new SqlParameter("@EID", SqlDbType.VarChar).Value = EID);
//cmd.Parameters.AddWithValue("@EID", EID); //Or AddWithValue
cmd.ExecuteNonQuery();
}
}
您缺少连接参数
你可以使用这个过载
SqlCommand command = new SqlCommand(INstring, con);
或者这个
sqlCommand.Connection = con;
SqlCommand