我有一个代码在数据库中插入数据,一切正常。只是不确定为什么会出现这个错误:“month”列不能为空“year”也不能为空

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

它应该可以插入月份和年份,即使我手动插入没有问题。有人知道为什么吗?

最佳答案

替换为:

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

关于c# - “月”列不能为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22447848/

10-13 03:48