2010-08-05 2 views
1

Comment ajouter le paramètre i utilisecomment ajouter le paramètre

je dois insérer plusieurs valeurs pour faire formulaire submition

string connectionString12 = ConfigurationManager.ConnectionStrings["mobile_db"].ConnectionString; 
OleDbConnection con = new OleDbConnection(connectionString12); 
OleDbCommand cmdinsert = new OleDbCommand("insert into brand_tbl (brand_name)values(@2GNetwork)", con); 
Parameter ab = new Parameter(); 
+0

"comment ** ajouter ** le paramètre" – JohnB

Répondre

-2

Je ne suis pas sûr que je comprends parfaitement votre question. Vous n'avez besoin de paramètres que si vous appelez des procédures stockées. Si vous passez une requête SQL, vous pouvez passer des arguments dans un string.Format() peut-être.

(l'exemple ci-dessous était adapted from MSDN)

string customerId = "NWIND" 
string companyName = "Northwind Traders"; 

OleDbConnection myConnection = new OleDbConnection(myConnectionString); 
string myInsertQuery = string.Format("INSERT INTO Customers (CustomerID, CompanyName) Values('{0}', '{1}')", customerId, companyName); 
OleDbCommand myCommand = new OleDbCommand(myInsertQuery); 
myCommand.Connection = myConnection; 
myConnection.Open(); 
myCommand.ExecuteNonQuery(); 
myCommand.Connection.Close();

Cependant, si vous le souhaitez, vous appelez à la place une procédure stockée, voici comment vous le feriez avec OleDB:

(exemple ci-dessous était adapted from MSDN)

OleDbConnection myConnection = new OleDbConnection(myConnectionString); 
OleDbCommand salesCMD = new OleDbCommand("SalesByCategory", nwindConn); 
salesCMD.CommandType = CommandType.StoredProcedure; 
OleDbParameter myParm = salesCMD.Parameters.Add("@CategoryName", OleDbType.VarChar, 15); 
myParm.Value = "Beverages"; 
myConnection.Open(); 
OleDbDataReader myReader = salesCMD.ExecuteReader(); 
myConnection.Close();
+3

N'encourageons pas les gens à utiliser String.Format. Les paramètres nommés sont plus sécurisés et peuvent fonctionner sans procédures stockées. – Greg

+1

Et les paramètres OLEDB vont devoir entrer normalement. –

+1

L'utilisation de la concaténation de chaînes ou de String.Format pour créer une requête n'est vraiment pas terminée. Vous allez sûrement avoir des problèmes (je pense aux dates, je pense à l'injection sql, etc ...). Vous pouvez parfaitement utiliser les paramètres pour les requêtes intégrées; les paramètres ne sont pas limités aux procédures stockées uniquement. –

2

Pour chaque PARAM er, vous devez créer un objet paramètre, lui affecter son nom et sa valeur et ajouter le paramètre à la commande. L'exemple suivant devrait vous aider à démarrer.

public void MyInsert(string twoGNetwork) 
{ 
    string connectionString; // get your connection string here 
    using (DbConnection connection = new OleDbConnection(connectionString)) 
    using (DbCommand command = connection.CreateCommand()) 
    { 
     command.CommandText = "insert into brand_tbl (brand_name) values (@2GNetwork)"; 

     // Add parameters 
     AddParameter(command, "@2GNetwork", twoGNetwork); 

     connection.Open(); 
     command.ExecuteNonQuery(); 
    } 
} 

private static void AddParameter(DbCommand command, string name, object value) 
{ 
    DbParameter param = command.CreateParameter(); 
    param.ParameterName = name; 
    param.Value = value; 
    command.Parameters.Add(param); 
} 

Edit:
Je lis que OLEDB peut ignorer les noms du paramètre et seulement respecter l'ordre. Assurez-vous donc d'ajouter vos paramètres dans l'ordre dans lequel ils sont utilisés.

Questions connexes