一尘不染

OleDbParameters和参数名称

c#

我有一条通过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);

我的问题是,如果仅按添加命令的顺序将参数值插入表中,参数名称的意义是什么?参数名称似乎多余吗?


阅读 513

收藏
2020-05-19

共1个答案

一尘不染

参数名称在SQL支持系统中是通用的(即,不是特定于OleDb的)。几乎只有OleDb /
Odbc不使用它们。它们之所以存在,是因为OleDb是通用基类的特定实现。

2020-05-19