我有一条通过OleDb执行的SQL语句,该语句是这样的:
INSERT INTO mytable (name, dept) VALUES (@name, @dept);
我像这样向OleDbCommand添加参数:
OleDbCommand Command = new OleDbCommand(); Command.Connection = Connection; OleDbParameter Parameter1 = new OleDbParameter(); Parameter1.OleDbType = OleDbType.VarChar; Parameter1.ParamterName = "@name"; Parameter1.Value = "Bob"; OleDbParameter Parameter2 = new OleDbParameter(); Parameter2.OleDbType = OleDbType.VarChar; Parameter2.ParamterName = "@dept"; Parameter2.Value = "ADept"; Command.Parameters.Add(Parameter1); Command.Parameters.Add(Parameter2);
我遇到的问题是,如果我以相反的方式添加参数来命令,则这些列将填充错误的值(即名称在dept列中,反之亦然)
Command.Parameters.Add(Parameter2); Command.Parameters.Add(Parameter1);
我的问题是,如果仅按添加命令的顺序将参数值插入表中,参数名称的意义是什么?参数名称似乎多余吗?
参数名称在SQL支持系统中是通用的(即,不是特定于OleDb的)。几乎只有OleDb / Odbc不使用它们。它们之所以存在,是因为OleDb是通用基类的特定实现。