1

複数のパラメーターを持つ C# で挿入クエリを実行したいと考えています。for loopすべてのパラメーターを通過し、そのパラメーターに値を割り当てるように、 が必要です。

クエリはアクセス データベースにあります。

    public static bool SubmitData(string queryName)
    {
        OleDbConnection conn = new OleDbConnection(cnnString);
        OleDbCommand cmd = new OleDbCommand(queryName, conn);
        OleDbDataAdapter da = new OleDbDataAdapter();

        DataSet ds = new DataSet();

        string strParameterName;

        conn.Open();
        cmd = new OleDbCommand(queryName, conn);

        cmd.Connection = conn;
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = queryName;

        for (int i = 0; i < cmd.Parameters.Count; i++)
        {

        }

        conn = null;
        return true;

    }

上記の例には 3 つのパラメーターがありますが、カウントは 0 になります。

4

1 に答える 1

4

3 つのパラメーターがどこにあるのか本当にわかりません。 プロシージャ レシーバのパラメータ数を返しParameters.Count ません。すでに追加されているパラメーターの数を返します。


おそらくあなたが望むのは:

cmd.Parameters.Add("@p1", OleDbType.Type1).Value = value1;
cmd.Parameters.Add("@p2", OleDbType.Type2).Value = value2;

Parametersパラメータ コレクションで、最初は空です。メソッドAddは、パラメーターを追加し、Value プロパティはその値を割り当てます。

OleDbConnectionでは、パラメータの順序が重要であるため、クエリからの順序を事前に知っておく必要があることに注意してください。

于 2013-03-05T02:31:09.557 に答える