繁体   English   中英

如何使用多客户端支持的ADO.Net参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM