Asp.net中的致命错误

时间:2015-07-18 16:05:53

标签: asp.net

我在cmd.ExecuteNonQuery遇到致命错误,有人能说出这段代码有什么问题吗?

using (MySqlCommand cmd = new MySqlCommand("INSERT INTO placement (S.NO,STUDENT NAME,BATCH,COMPANY NAME) values (@S.NO,@STUDENT NAME,@BATCH,@COMPANY NAME)"))
        {

        using (MySqlDataAdapter sda = new MySqlDataAdapter())
        {
            cmd.Parameters.AddWithValue("@S.NO", sno);
            cmd.Parameters.AddWithValue("@STUDENT NAME", name);
            cmd.Parameters.AddWithValue("@BATCH",batch);
            cmd.Parameters.AddWithValue("@COMPANY NAME",companyname);
            cmd.Connection = con;
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }
    }

1 个答案:

答案 0 :(得分:0)

  1. 在INSERT INTO放置语句中,括号必须包含属性名称。
  2. 将空白留在参数名称之外。
  3. 以下适用于包含列位置,名称,房间,电话:

    的表格
            MySqlConnection con = new MySqlConnection(dbConnectString);
    
            using (MySqlCommand cmd = new MySqlCommand("INSERT INTO table1 (Location, Name,  Room, Phone) values (@LOCATION.L1,@STUDENT,@ROOM,@PHONE.NR)"))
            {
    
                using (MySqlDataAdapter sda = new MySqlDataAdapter())
                {
                    cmd.Parameters.AddWithValue("@LOCATION.L1", "Paris");
                    cmd.Parameters.AddWithValue("@STUDENT", "Harris");
                    cmd.Parameters.AddWithValue("@ROOM", "Room 123");
                    cmd.Parameters.AddWithValue("@PHONE.NR", "4711");
                    cmd.Connection = con;
                    con.Open();
                    cmd.ExecuteNonQuery();
                    con.Close();
                }
            }
    

    并且,如果您收到异常,您可以查看innerException以获取更详细的信息。

    如果列名中有空白字符,建议删除它们(被视为不良做法)。否则,您必须在sql查询中使用特殊字符`来包含这些名称,该字符与字符'不同。