2011-06-04 90 views
0

我正在爲我的一個項目開發職業網站。我正在使用Visual Studio 2010和ASP.NET Web窗體進行編碼。主鍵問題ASP.NET

我的問題是我有一個名爲Companies的表,它由列Company ID, Company Name, Company AddressCompany Phone組成。 CompanyID是我的主要關鍵。我正嘗試使用Linq-to-SQL將新公司添加到此表中。

當我執行下面這段代碼時,如果數據庫是空的,代碼將正常工作,但如果不是,它不會自動增加CompanyID並給我一個數據庫錯誤。

我該如何解決這個問題?

在此先感謝。

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Label_error.Text = ""; 
    Page.Validate(); 

    if (Page.IsValid) 
    { 
     CareerDataContext db = new CareerDataContext(); 

     Company newCompany = new Company { coName = TextBox_coName.Text, coAddress = TextBox_coAddress.Text, coPhone = int.Parse(TextBox_coPhone.Text) }; 
     Company fCompany = db.Companies.SingleOrDefault(company => company.coName.Equals(TextBox_coName.Text)); 

     if (fCompany == null) 
     { 
      db.Companies.InsertOnSubmit(newCompany); 
      db.SubmitChanges(); 
     } 
     else 
      Label_error.Text = "This username is already in use"; 
    } 
} 
+0

**你得到了什麼**誤差(準確)?什麼樣的數據類型是你的數據庫上的'CompanyID'? – 2011-06-04 13:18:07

+0

你的問題與ASP.NET有什麼關係?如果您使用的是控制檯程序,問題會有所不同? – 2011-06-04 14:46:42

回答

1

如果您的CompanyID是唯一標識符,那麼您可以通過Guid.NewGuid();

例如:

Company newCompany = new Company { coID = Guid.NewGuid(), coName = TextBox_coName.Text, coAddress = TextBox_coAddress.Text, coPhone = int.Parse(TextBox_coPhone.Text) }; 
+0

我不明白你的觀點。我應該如何使用Guid.NewGuid(); ? – Jail 2011-06-04 13:00:27

+0

解決。我重新創建我的DBML並修復。有趣但已解決=) – Jail 2011-06-04 13:17:51