Comment passer des variables dans SqlCommand déclaration et les insérer dans la table de base de données
Je suis en train d'écrire un petit programme en C# qui utilise SQL pour stocker des valeurs dans une base de données au moment de l'exécution basée sur la saisie par l'utilisateur.
Le seul problème est que je n'arrive pas à corriger la syntaxe Sql pour passer des variables dans ma base de données.
private void button1_Click(object sender, EventArgs e)
{
int num = 2;
using (SqlCeConnection c = new SqlCeConnection(
Properties.Settings.Default.rentalDataConnectionString))
{
c.Open();
string insertString = @"insert into Buildings(name, street, city, state, zip, numUnits) values('name', 'street', 'city', 'state', @num, 332323)";
SqlCeCommand cmd = new SqlCeCommand(insertString, c);
cmd.ExecuteNonQuery();
c.Close();
}
this.DialogResult = DialogResult.OK;
}
Dans cet extrait de code, je suis en utilisant toutes les valeurs statiques, sauf pour la variable num qui je suis en train de passer de la base de données.
Lors de l'exécution j'obtiens cette erreur:
A parameter is missing. [ Parameter ordinal = 1 ]
Grâce
Vous devez vous connecter pour publier un commentaire.
Ajouter un paramètre à la commande avant de l'exécuter:
Vous n'avez pas à fournir une valeur pour le
@
paramètre dans l'instruction SQL. Le@
symbole indique un type d'espace réservé où vous allez passer une valeur à travers.Utiliser un SqlParameter objet est vu dans cet exemple pour passer d'une valeur à cet espace réservé/paramètre.
Il y a de nombreuses façons de construire un paramètre de l'objet (différentes surcharges). Une façon, si vous suivez le même genre d'exemple, est de coller le code suivant après l'endroit où votre commande objet est déclaré: