2017-10-09 10 views
0

J'ai une page de registre. Je veux insérer les données sur cette page dans la base de données. Il y a une liste dans cette page. Je veux laisser l'utilisateur sélectionner une ou plusieurs données dans la liste et l'insérer correctement dans la base de données. Par exemple, un utilisateur a sélectionné le basketball, le football et le volleyball dans vos sports favoris (listbox). Alors ma base de données devrait avoir le basket, le football, le volleyball dans votre colonne sportive préférée. J'espère pouvoir le dire. Parce que mon anglais n'est pas très bon. Pardon.Comment insérer plusieurs données dans la liste à la base de données

Ceci est la page: [1]: https://i.stack.imgur.com/G95dO.png

Ces codes ne fonctionnent pas. Que devrais-je faire?

Mes codes:

protected void btnKayitEt_Click(object sender, EventArgs e) 
     { 
      using (SqlConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=Spordeneme;User ID=sa;Password=123456")) 
      { 
       try 
       { 
        conn.Open(); 
        SqlCommand komut = new SqlCommand("Insert into Kullanici (Ad,Soyad,Cinsiyet,Email,Sifre,SifreTekrar,Il,Ilce) Values (@ad,@soyad,@cinsiyet,@email,@sifre,@sifretekrar,@il,@ilce)",conn); 
        komut.Parameters.AddWithValue("@ad",txtAdi.Text); 
        komut.Parameters.AddWithValue("@soyad",txtSoyAdi); 
        komut.Parameters.AddWithValue("@cinsiyet", cnsyt.SelectedItem.Value); 
        komut.Parameters.AddWithValue("@email", txtEmaili.Text); 
        komut.Parameters.AddWithValue("@sifre", txtSifresi.Text); 
        komut.Parameters.AddWithValue("@sifretekrar", txtSifreTekrari.Text); 
        komut.Parameters.AddWithValue("@il", ddlil.SelectedItem.Value); 
        komut.Parameters.AddWithValue("@ilce", ddlilce.SelectedItem.Value); 
        for (int i = 0; i < lbspor.Items.Count; i++) 
        { 
         komut.CommandText = "insert into Kullanici (FavoriSporlar) values (@favorispor)"; 
         komut.Parameters.AddWithValue("@favorispor", lbspor.Items[i].ToString().Trim()); 
         komut.ExecuteNonQuery(); 
        } 
        komut.ExecuteNonQuery(); 
       } 
       catch 
       { 
        lbl1.Text = "Hata Oluştu, kaydedilmedi"; 
       } 
       finally 
       { 
        conn.Close(); 
       } 
      }`enter code here` 
     } 

Répondre

0

vous devriez ajouter try {..} catch (Exception ex) {...} et le message d'erreur dans la variable "ex". le problème principal se localise avec le code à l'intérieur de la boucle.

+0

je l'ai fait et erreur est "Impossible d'insérer la valeur NULL dans la colonne 'cinsiyet', la table 'Spordeneme.dbo.Kullanici'; colonne ne permet pas de null INSERT échoue.La déclaration a été terminée." Je ne peux pas entrer une valeur nulle. Qu'est-ce que je devrais faire maintenant? – Prooff

+0

il y a 2 solutions: la première solution est que vous devez éditer la colonne "cinsiyet" pour autoriser NULL. la deuxième solution est que vous devez vérifier komut.Parameters.AddWithValue ("@ cinsiyet", cnsyt.SelectedItem.Value == Null? String.Empty: cnsyt.SelectedItem.Value) – ndinhdat

+0

J'ai fait la première solution puis la même erreur s'est produite dans l'autre Les données. Je n'ai jamais entré de valeur nulle. Je ne comprends pas la deuxième solution désolé. – Prooff