2

私はこのような方法を持っています:

private void SetDataSet(string sqlString, params SqlParameter[] parameters)
    {
        DataSet ds = new DataSet();
        using (SqlConnection conn = new SqlConnection(cs))     
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = conn;
                //cmd.CommandType = CommandType.
                cmd.CommandText = sqlString;

                if (parameters != null)
                {
                    foreach (SqlParameter parm in parameters)
                    {
                        cmd.Parameters.Add(parm);
                    }
                }

                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }
                using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                {
                     cmd.ExecuteScalar();
                }
            }
        }

    }

ここで、testMethod という別のメソッドから、必要なすべての引数を指定して "SetDataSet" を呼び出したいと思います。残念ながら、必要な sqlparameters を "構築" する方法と、後で "SetDataSet" メソッドに情報を渡す方法がわかりません。

private void testMethod()
{
  string sqlString = .... .

  //here should be the code, which will create sql parameters

  //and now we call the SetDataSet with all needed arguments:
  SetDataSet(sqlString, ?!);
}

testMethod で sqlparameters 配列(?) を作成し、それを SetDataSet メソッドに渡すことができるある種のループについて考えていましたが、それを実現する方法がわかりません。

何かご意見は?

4

4 に答える 4

0

SQL パラメータを作成する必要がありますか?

このような:

SqlParameter sqlP1= new SqlParameter("Id", SqlDbType.Int);
sqlP1.Value = 200;
于 2012-11-11T20:33:10.603 に答える
0

SQL パラメータを作成する必要がありますか?

このような:

SqlParameter SqlParm = new SqlParameter("ID", SqlDbType.Int);
SqlParm.Value = 100;

データベースに関するすべての作業を何らかの汎用的な方法で行っていると考えている場合、新しいレイヤーを作成することになりますが、データベースへのアクセスの要点を回避することはできません。

于 2012-11-11T20:00:54.940 に答える
0

パラメータを指定するだけです。paramsパラメータは自動的に配列を作成します。

 SetDataSet(sqlString, param1, param2, param3, ..., paramN);
于 2012-11-11T19:57:39.787 に答える
0

だからあなたがやろうとしていることは次のようなものです:

private void testMethod() 
{
    string sqlString = .....

    //here should be the code, which will create sql parameters

    // An varchar(80) parameter called @Name with the value "Chuck".
    SqlParameter paramName = new SqlParameter("@Name", SqlDbType.VarChar, 80);
    paramName.Value = "Chuck";

    // An int parameter called @Age with the value 49.
    SqlParameter paramAge = new SqlParameter("@Age", SqlDbType.Int);
    paramAge.Value = 49;

    // Create more parameters here, as many as you want.
    // You could also create a SqlParameter[] array and send in instead.

    //and now we call the SetDataSet with all needed arguments:
    SetDataSet(sqlString, paramName, paramAge); // just add all parameters one after another.
}

paramsパラメータを使用しているため、パラメータSetDataSet(string sqlString, params SqlParameter[] parameters)の後にゼロまたは必要な数のパラメータを追加できsqlStringます。

于 2012-11-11T20:55:24.047 に答える