2013-09-29 50 views
0

我想使用SqlCeCommandBuilder,我有一個問題。我使用的表格有三欄。第一個設置爲主鍵,標識開啓並設置爲遞增1。當我創建我的SqlCeCommand時,我無法執行它。我想如果我離開那個列,它會自動添加值,但它會返回一個錯誤,指出命令中的列數必須與表中的列數匹配。所以,如果我將「BillerID」列添加到命令生成器,它說我需要爲它添加一個值。然後當我添加一個值時,它說列「BillerID」不能被修改。我究竟做錯了什麼?錯誤使用SqlCeCommandBuilder插入行列身份時打開

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

回答

1

,您可以指定要插入列,請嘗試更改查詢到這一點:

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

而且完全離開了ID參數。

+0

太棒了!我不知道爲什麼我不這樣試。它工作完美。我不知道爲什麼,除了我嘗試過的所有其他方法之外,這種變化並沒有出現在我的腦海中。謝謝! – Casey

+0

很高興工作!你可以點擊勾號將其標記爲答案嗎? –