将值插入数据库

时间:2012-09-17 18:35:12

标签: c# mysql database insert

我一直在使用以下代码将值插入MySQL数据库。代码构建时没有错误消息,但是一旦我尝试运行代码,它就说:

  

MySql.Data.MySqlClient.MySqlException:列'name'不能为null

请告诉我代码中的错误。

这是我正在使用的插入功能:

public int insert (int id, string name, string sname, int marks )
{
     string connection= ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
       MySqlConnection con = new MySqlConnection(connection);


    MySqlCommand com = new MySqlCommand("INSERT INTO Student_details(id,name,sname,marks) values(@id,@name, @sname, @marks)");

   // com.Connection = com;
   com.Connection = con;
    con.Open();

    //com.Parameters.Add("@id", id);
    //com.Parameters.Add("@name", name);
    //com.Parameters.Add("@sname", sname);
    //com.Parameters.Add("@marks", marks);
    com.Parameters.AddWithValue("@id", id);
    com.Parameters.AddWithValue("@name", name);
    com.Parameters.AddWithValue("@sname", sname);
    com.Parameters.AddWithValue("@marks", marks);
   //// com.Parameters.a
    //com.ExecuteNonQuery();
    int ret = Convert.ToInt32(com.ExecuteScalar());

    return ret;
}

3 个答案:

答案 0 :(得分:1)

你能用参数验证重写你的方法吗?这将为您的编程风格提供 +1 。如果输入没有遵循预期的合同,你会更快地知道。

public int insert (int id, string name, string sname, int marks )
{
    if(name == null) throw new ArgumentNullException("name");
    ...
}

似乎您传递的name参数为null

答案 1 :(得分:0)

你确定名字不是空的吗?你没有验证你的参数。

答案 2 :(得分:0)

您好我正在使用简单的以下前端函数将数据字段的值插入到dataaccess图层类中,该类具有Insert()函数...请查看我在哪里出错..... ...

尝试

    {


        DataAccessLayer dal = new DataAccessLayer();
        int id = 23;
        string name = "mayank";
        string sname = "agarwal";
        int marks = 34;
        int a = dal.insert(id, name, sname, marks);
        LblUserName.Text = a.ToString();  

    }
    catch (Exception ex)
    {
        Console.Write(ex.Message.ToString());
            throw;
    }