专栏'月'不能为空

时间:2014-03-17 05:58:36

标签: c# mysql ado.net

我有一个在数据库中插入数据的代码,一切正常。 JUst不确定我为什么会收到此错误:“列'月'不能为空'”同样适用于'年'

string query = "INSERT INTO page_counter (month,year,page_count) VALUES(@month,@year,@page_count)";
        //create command and assign the query and connection from the constructor
            MySqlCommand cmd = new MySqlCommand(query, connection);

            cmd.Parameters.Add("@month", MySqlDbType.VarChar);
            cmd.Parameters.Add("@year", MySqlDbType.Year);
            cmd.Parameters.Add("@page_count", MySqlDbType.Int32);
            cmd.Parameters["@month"].Value = "MAR";
            cmd.Parameters["@year"].Value = 2014;
            cmd.Parameters["@page_count"].Value = new_count;

            //Execute command
            cmd.ExecuteNonQuery();

它应该能够插入月份和时间即使我手动插入也没有问题。任何人都知道为什么?

1 个答案:

答案 0 :(得分:1)

替换它:

cmd.Parameters.Add("@month", MySqlDbType.VarChar);
cmd.Parameters.Add("@year", MySqlDbType.Year);
cmd.Parameters.Add("@page_count", MySqlDbType.Int32);
cmd.Parameters["@month"].Value = "MAR";
cmd.Parameters["@year"].Value = 2014;
cmd.Parameters["@page_count"].Value = new_count;

有了这个:

cmd.Parameters.AddWithValue("@month", "MAR");
cmd.Parameters.AddWithValue("@year", 2014);
cmd.Parameters.AddWithValue("@page_count",new_count);