Ich brauche einen Update-Befehl mit Parametern, und aus bestimmten Gründen kann ich nicht gespeicherte Prozeduren verwenden, tatsächlich generieren wir Update-Befehl abhängig von Datenbank, Tabelle und Spalten, verwenden wir die folgenden Formen:Ausnahme in Add Parameter zu DbCommand
string conStr = "Provider=SQLNCLI10;Server=.\\sql2008;DataBase=MyDataBase;Trusted_Connection=true;";
DbProviderFactory dbFactory = DbProviderFactories.GetFactory("System.Data.OleDb");
DbConnection dbConnection = dbFactory.CreateConnection();
dbConnection.ConnectionString = conStr;
DbCommand dbCommand = dbFactory.CreateCommand();
dbCommand.CommandText = "UPDATE [Student] SET Name = @Name Where Id = @Id";
DbParameter param1 = dbCommand.CreateParameter();
param1.ParameterName = "@Name";
param1.Value = "LOL";
DbParameter param2 = dbCommand.CreateParameter();
param2.ParameterName = "@Id";
param2.Value = 5;
dbCommand.Parameters.Add(param1);
dbCommand.Parameters.Add(param2);
dbConnection.Open();
dbCommand.ExecuteNonQuery();
dbConnection.Close();
Aber es gibt eine Ausnahme:
muss die skalare Variable "@Name"
erklären, wo das Problem in dieser Dorsch e? Hat jemand eine Idee dazu?
An welchem Punkt haben assoziieren Sie den Befehl mit der Verbindung? Hat die Fabrik das gemacht? Außerdem, an welcher Linie bekommen Sie die Ausnahme? – Renan
@Nilesh Gib mir das [link] (http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommand.parameters.aspx) Das ist die Antwort, aber wie wäre es mit 'Odbc' Befehl, funktioniert das wie 'Oledb'? –