C# OLEDB参数';名字迷恋
由于C# OLEDB参数';名字迷恋,c#,.net,oledbparameter,C#,.net,Oledbparameter,由于OleDbParameter不使用命名参数(由于其性质), 为什么.NETOleDbParameter类需要一个名称(字符串参数名称…) 所有的构造函数都需要一个参数名,我不知道该给它取什么名字;我的名字可以吗?还是我祖母的名字?就像编程中的其他东西一样,给它命名一些对您的环境有意义的东西!(姓名、订单号、城市等) 在c#代码中,使用名称按名称访问参数集合: 在执行语句后使用OUT参数提取值时,这也很有用: OleDbParameter outParam = new OleDbParamet
OleDbParameter
不使用命名参数(由于其性质),
为什么.NETOleDbParameter
类需要一个名称<代码>(字符串参数名称…)
所有的构造函数都需要一个参数名,我不知道该给它取什么名字;我的名字可以吗?还是我祖母的名字?就像编程中的其他东西一样,给它命名一些对您的环境有意义的东西!(姓名、订单号、城市等) 在c#代码中,使用名称按名称访问参数集合: 在执行语句后使用OUT参数提取值时,这也很有用:
OleDbParameter outParam = new OleDbParameter();
outParam.Direction = ParameterDirection.Output;
outParam.DbType = DbType.Date;
outParam.ParameterName = "outParam";
command.Parameters.Add(outParam);
command.ExecuteNonQuery();
DateTime outParam = Convert.ToDateTime(command.Parameters["outParam"].Value);
尽管OleDb/Odbc提供程序使用位置参数而不是命名参数-
string sql = "SELECT * FROM MyTable WHERE Field = ?";
OleDbCommand cmd = new OleDbCommmand(sql, sqlConnection);
cmd.Parameters.Add("@FieldValue", OleDbType.Int32, 42);
OleDbDataReader dr = cmd.ExecuteReader();
执行的SQL类似于(或者我认为接近于):
建议您使用与正在操作的列的名称最匹配的参数名称。有一些接口和工厂为数据访问提供基础提供程序的独立性-IDataParameter、DbParameter、DbProviderFactory等
为了支持这一点,所有参数都可以命名,即使基础提供程序未使用该名称。注意:
command.parameters[“name”].Value=“此处为您的姓名或祖母姓名”代码>不是添加参数的有效方法,只能更改现有参数的值。我最初推断,如果不存在,它会将其添加到集合中。我从来没有说过这就是添加参数的方式,我说(在上面的评论中)先添加参数,然后使用方括号符号引用它们,这是合理的;我最初只是将它解释为与下面的行相关联,而不是与“…”相关联。这是我对未来读者的警告。不批评;只是澄清一下。
string sql = "SELECT * FROM MyTable WHERE Field = ?";
OleDbCommand cmd = new OleDbCommmand(sql, sqlConnection);
cmd.Parameters.Add("@FieldValue", OleDbType.Int32, 42);
OleDbDataReader dr = cmd.ExecuteReader();
DECLARE @FieldValue INT;
SET @FieldValue = 42;
SELECT * FROM MyTable WHERE Field = @FieldValue