2009-04-24 110 views
1

使用此代碼,我的數據庫沒有變化。 當上面的代碼運行時,不再有新的條目創建,也不是更新的條目。更新SubmitChanges() - 不更新

public void UpdateCallback(callback cb_) 
    { 
     callback call = context.callbacks.Single(c => c.callbackID == cb_.callbackID); 

      //call.callbackID = cb_.callbackID; 
      call.status = cb_.status; 
      call.contactName = cb_.contactName; 
      call.company = cb_.company; 
      call.phone = cb_.phone; 
      call.calledDate = cb_.calledDate; 
      call.callback1 = cb_.callback1; 
      call.notes = cb_.notes; 

     try 
     { 
      context.SubmitChanges(); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e); 
     } 
    } 

回答

4

這個post是類似於你的。

在他的情況下,更新不起作用,因爲該表沒有主鍵。

您是否已驗證CallbackId在數據庫中定義爲PK?

+0

我有這個問題,以及原因。 – Blorgbeard 2009-04-24 07:26:31

0

什麼都沒有立即跳出來對我。我發現使用DataContext的Log屬性來查看正在生成的SQL很有用。

http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.log.aspx

然後,您可以使用類似下面的代碼輸出SQL到Visual Studio調試窗口調試時。

/// <summary> 
/// Implementation of a <see cref="TextWriter"/> that outputs to the debug window 
/// </summary> 
public class DebugTextWriter : TextWriter 
{ 
    public override void Write(char[] buffer, int index, int count) 
    { 
     System.Diagnostics.Debug.Write(new string(buffer, index, count)); 
    } 

    public override void Write(string value) 
    { 
     System.Diagnostics.Debug.Write(value); 
    } 

    public override Encoding Encoding 
    { 
     get { return System.Text.Encoding.Default; } 
    } 
}