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