2011-06-04 5 views
0

Je développe un site web professionnel pour l'un de mes projets. J'utilise Visual Studio 2010 et ASP.NET Web Forms au code. Mon problème est que j'ai une table nommée Companies qui se compose des colonnes Company ID, Company Name, Company Address et Company Phone. CompanyID est ma clé primaire. J'essaie d'insérer de nouvelles sociétés dans cette table en utilisant Linq-to-SQL. Lorsque j'exécute le code suivant, si la base de données est vide, le code fonctionne correctement mais si ce n'est pas le cas, il ne peut pas incrémenter automatiquement le CompanyID et me donne une erreur de base de données.Problème clé primaire ASP.NET

Comment puis-je résoudre ce problème?

Merci d'avance.

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

** QU'EST-CE ** erreur obtenez-vous (exactement) ?? Et quel type de données est votre 'CompanyID' sur votre base de données ?? –

+0

Et qu'est-ce que votre problème a à voir avec ASP.NET? En quoi le problème serait-il différent si vous utilisiez un programme de console? –

Répondre

1

Si votre identifiant de société est un identificateur unique, vous pouvez transmettre Guid.NewGuid();

Par exemple:

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

Je n'ai pas compris votre point. Comment dois-je utiliser Guid.NewGuid(); ? – Jail

+0

Résolu. Je recréer mon DBML et corrigé. Intéressant mais résolu =) – Jail