我需要一个带有参数的更新命令,由于某些原因,我不能使用存储过程,实际上我们根据数据库,表和列生成更新命令,我们使用以下表单:添加参数到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();
但有一个例外:
必须声明标量变量 “@Name”
问题出在哪里在这个鳕鱼è?有没有人有这个想法?
在这一点你与连接的命令相关联?工厂做到了吗?另外,你会在哪一行发生异常? – Renan
@Nilesh给我这[链接](http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommand.parameters.aspx)这是答案,但如何'Odbc'命令,是像'Oledb'一样工作吗? –