0

我正在尝试使用 SqlCeCommandBuilder,但我遇到了问题。我正在使用的表有三列。第一个设置为主键,身份打开并设置为递增一。当我创建我的 SqlCeCommand 时,我无法让它执行。我想如果我离开该列,它会自动添加该值,但它返回一个错误,说明命令中的列数必须与表中的列数匹配。因此,如果我将“BillerID”列添加到命令生成器,它会说我需要为其添加一个值。然后当我添加一个值时,它说不能修改“BillerID”列。我究竟做错了什么?

using (SqlCeConnection con = new SqlCeConnection(Properties.Settings.Default.BillsConnectionStringDefault))
        {
            con.Open();
            try
            {
                using (SqlCeCommand command = new SqlCeCommand(
                "INSERT INTO Billers VALUES(@BillerID, @Name, @Type)", con))
                {
                                       command.Parameters.Add(new SqlCeParameter("BillerID", 999999));                      
                   command.Parameters.Add(new SqlCeParameter("Name", billerName));
                   command.Parameters.Add(new SqlCeParameter("Type", "0"));
                   command.ExecuteNonQuery();
                }
            }
            catch(Exception ex)
            {                   
                MessageBox.Show(string.Format(ex.Message.ToString()));
            }
        }
4

1 回答 1

1

您可以指定要插入的列,尝试将查询更改为:

"INSERT INTO Billers (Name, Type) VALUES(@Name, @Type)"

并完全省略 ID 参数。

于 2013-09-29T22:17:03.653 回答