继续从C#向SQL Server插入数据时出错

时间:2014-09-16 13:43:54

标签: c# sql sql-server

我正在编写一个简单的程序来将数据插入表中。继续收到此错误:

  

未处理的类型' System.InvalidOperationException'发生在System.Data.dll中   附加信息:ExecuteNonQuery:尚未初始化Connection属性。

代码:

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

3 个答案:

答案 0 :(得分:5)

您没有连接命令连接。请改用此过载:

SqlCommand cmd = new SqlCommand(INstring, con);

答案 1 :(得分:3)

对于初学者来说,你还没有连接到你的SqlCommand,这就是错误告诉你的错误。

SqlCommand cmd = new SqlCommand(INstring, con);

更重要的是,参数化您的查询,您可以使用SQL注入。另请考虑将SqlCommandSqlConnection对象括在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();
    }
}

答案 2 :(得分:2)

您缺少连接参数

你可以使用这个重载

SqlCommand command = new SqlCommand(INstring, con);

或者这个

sqlCommand.Connection = con;  

SqlCommand