Comment insérer des Enregistrements dans la Base de données à l'aide du langage C#?
Je ne suis qu'un débutant en C# j'ai donc besoin de beaucoup d'aide. Maintenant, le problème est que j'ai conçu un formulaire windows dans lequel il existe de nombreux domaines comme le prénom, le nom, l'adresse, etc. Maintenant je veux faire c'est que lorsque je remplis le formulaire et cliquez sur le bouton insérer toutes les informations dans la base de données. Personne ne sait comment faire cela?
private void button1_Click(object sender, System.EventArgs e)
{
string connetionString = null;
SqlConnection cnn ;
SqlDataAdapter adapter = new SqlDataAdapter();
string sql = null;
connetionString = "Data Source=UMAIR;Initial Catalog=Air; Trusted_Connection=True;" ;
cnn = new SqlConnection(connetionString);
sql = "insert into Main (Firt Name, Last Name) values(textbox2.Text,textbox3.Text)";
try
{
cnn.Open();
adapter.InsertCommand = new SqlCommand(sql, cnn);
adapter.InsertCommand.ExecuteNonQuery();
MessageBox.Show ("Row inserted !! ");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
Ne rien ajouter? Parce qu'il semble que les valeurs "textbox2.texte" et "textbox3.texte" peut-être
rien du tout. j'ai utilisé ce pour vérifier mais en vain.
Et s'il y a une colonne dans votre base de données appelée "Premier Nom" et "prénom"? Ont-ils vraiment des espaces entre eux?
Je dowvote à cette question, car il n'y a aucun moyen que cette requête s'exécute avec succès, ce qui montre une absence totale de débogage sur la part de l'utilisateur, car la commande n'a jamais fonctionne.
rien du tout. j'ai utilisé ce pour vérifier mais en vain.
Et s'il y a une colonne dans votre base de données appelée "Premier Nom" et "prénom"? Ont-ils vraiment des espaces entre eux?
Je dowvote à cette question, car il n'y a aucun moyen que cette requête s'exécute avec succès, ce qui montre une absence totale de débogage sur la part de l'utilisateur, car la commande n'a jamais fonctionne.
OriginalL'auteur Umair Javed | 2012-08-27
Vous devez vous connecter pour publier un commentaire.
Il y a beaucoup de problèmes dans votre requête.
Ceci est une version modifiée de votre code
besoin de crochets autour d'eux
using
déclaration afin d'être sûr que la connexionsera fermé et les ressources disponibles
sqlinjiection attaques
En dehors de cela, il y a d'autres problèmes potentiels. Que faire si l'utilisateur n'a pas à quoi que ce soit entrée dans les contrôles de zone de texte? Ne vous ont fait aucun contrôle sur cela avant d'essayer de l'insérer?
Comme je l'ai dit les champs noms contiennent des espaces, ce qui va causer des désagréments dans votre code. Essayez de changer les noms de champs.
EDIT: Si vous travaillez avec NET Framework 1.1, vous n'avez pas la méthode AddWithValue, donc changer les deux AddWithValue lignes avec ces
Ce code suppose que votre base de données, les colonnes sont de type NVARCHAR, si pas, alors utilisez le SqlDbType valeur d'enum.
Veuillez vous envisagez de passer à une version plus récente de NET Framework dès que possible.
La 1.1 est vraiment obsolète maintenant.
Pouvez-vous me dire le message d'erreur? 🙂
C:\Users\umair.javed\Documents\Visual Studio Projects\Traitement De L'Air\Form1.cs(278): "le Système de.Les données.SqlClient.SqlParameterCollection' ne contient pas une définition pour 'AddWithValue'
Depuis
SqlCommand
implémenteIDisposible
, le bloc à l'aide d', il doit être entouré avecusing (SqlCommand cmd = new SqlCommand(sql, cnn))
.Javed - Pourquoi êtes-vous à l'aide de Visual Studio 2003. Visual Studio 2012 Express est 100% gratuit.
OriginalL'auteur Steve
Vous devez modifier votre code pour utiliser SqlParameters et d'adapter vos insérer l'énoncé suivant
OriginalL'auteur Pilgerstorfer Franz
Utiliser une requête paramétrée pour éviter des injections Sql (sécutité problème)
Utiliser l'instruction à l'aide de sorte que la connexion sera fermée et les ressources seront éliminés.
OriginalL'auteur SidAhmed
Vous devriez formulaire de la commande avec le contenu des zones de texte:
Cela, bien sûr, à condition que vous réussissez à ouvrir la connexion correctement.
Il serait utile de savoir ce qui se passe avec votre code actuel. Si vous obtenez une erreur affichés dans la boîte de message, il serait bon de savoir ce qu'il dit.
Vous devez également valider les entrées avant l'exécution de la commande (c'est à dire s'assurer qu'ils ne contiennent pas de code malveillant...).
OriginalL'auteur Paolo Tedesco
(Première du Nom) n'est pas un champ valide. Il convient de nom ou Prenom. Il peut être votre problème.
OriginalL'auteur Jaime Yule