[英]How to use multi client supported ADO.Net parameter
我正在构建一个ado.net包装器,可以连接任何数据库(由ADO.Net支持),基本上来自SQl,Oledb,Odbc,Oracle,Sqlite等。我实现了连接和所有其他基本的东西。 但是在我的查询需要参数从其他级别传递的点上,我被困在那里。 我知道为此我们使用IDataParameterCollection或IDbDataParameters等。但不知道实现的方式。
所以你们请你们帮助我。 这将是一个很大的帮助。
要么
简而言之,我需要一种独立的方式来传递将在所有类型的客户端中使用的参数,无论是SqlClient,OracleClient还是任何其他客户端。
谢谢!!!
(cmd是DbCommand实例)
DbParameter p = cmd.CreateParameter();
p.Direction = ParameterDirection.Input;
p.Value = the_value;
p.ParameterName = the_param_name;
p.DbType = ...
cmd.Parameters.Add(p);
然后,查询就像select * from table where field = ?
。 但是,要小心订单或创建参数。
的?
小丑应该是独立的。
好。 在用户方面:
SqlParameter s1 = new SqlParameter();
s1.Direction = ParameterDirection.Input;
s1.ParameterName = "s1";
SqlParameter s2 = new SqlParameter();
s2.Direction = ParameterDirection.Input;
s2.ParameterName = "s2";
this.ExecuteScalar("query", new IDataParameter[] { s1, s2 });
另一方面:
public int ExecuteScalar(string commandText, IDataParameter[] param)
{
IDbCommand cmd = connection.CreateCommand();
cmd.CommandText = commandText;
foreach (IDataParameter p in param)
cmd.Parameters.Add(p);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.