14

5 つのパラメーターがあり、それらをメソッドに送信したい:

public static SqlCommand getCommand(string procedure, SqlParameter[] parameter)
{
   Sqlcommand cmd;
   return cmd
}

このようにこれらのパラメーターを一度に送信できますか?

SqlParameterCollection prm;
prm.Add(p1);
prm.Add(p2);
prm.Add(p3);
prm.Add(p4);
prm.Add(p5);
sqlcommand cmd = getCommand(prm);
4

7 に答える 7

19

または、パラメータの配列を手動で作成します。

SqlParameter[] parameter = {
new SqlParameter(...), 
new SqlParameter(...), 
new SqlParameter(...)
};

しかし、私はあなたのアプローチで何が間違っているべきかわかりません。それはシンプルで、読みやすく、理解しやすいものです。

于 2009-01-08T20:44:46.103 に答える
7

私はそれの何が問題なのかわかりませんか?SqlCommandこれが .NET の場合、パラメーターをオブジェクトにアタッチする必要があることをご存知ですか?

そう:

SqlCommand query = new SqlCommand(sqlString, Connection);
query.Parameters.AddWithValue(parameter,valueToPass);

等?

それが関連していない場合は申し訳ありませんが、あなたの質問に完全に確信が持てませんか? あなたのメソッドは実際には何もしません。コードを省略して、質問をする目的でダミーを入れただけですか? 配列を引数として渡すことができるので、それをこぼすだけですか?

于 2009-01-08T20:05:23.593 に答える
6

これをインスピレーションとして使用すると、次のコードが機能しました。

List<SqlCeParameter> parameters = new List<SqlCeParameter>();

parameters.Add(new SqlCeParameter("@Username", NewUsername));
parameters.Add(new SqlCeParameter("@Password", Password));

cmd.Parameters.AddRange(parameters.ToArray());
于 2012-12-03T03:44:40.853 に答える
2

getCommand への呼び出しでは、プロシージャで文字列を渡していないため、これはコンパイルされませんが、配列に関しては問題なく動作するはずです。

于 2009-01-08T20:06:31.703 に答える
1

これが私のコードです。名前、値、タイプなどのすべてのパラメーター プロパティを使用できます。

int SelectedListID = 6;
string selectedPrefix = "IP";
string sqlQuery = "select * from callHistory where ImportID=@IMPORTID and Prefix=@PREFIX"

SqlParameter[] sParams = new SqlParameter[2]; // Parameter count

sParams[0] = new SqlParameter();
sParams[0].SqlDbType = SqlDbType.Int;
sParams[0].ParameterName = "@IMPORTID";
sParams[0].Value = SelectedListID;

sParams[1] = new SqlParameter();
sParams[1].SqlDbType = SqlDbType.VarChar;
sParams[1].ParameterName = "@PREFIX";
sParams[1].Value = selectedPrefix;


SqlCommand cmd = new SqlCommand(sqlQuery, sConnection);

if (sParams != null)
{
    foreach (SqlParameter sParam in sParams)
    {
        cmd.Parameters.Add(sParam);
        Application.DoEvents();
    }
}
于 2015-04-29T12:04:51.300 に答える