簡體   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