我有一个像这样的方法:
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"所有需要的论点。不幸的是,我不知道如何构建"所需的sql参数以及后来如何传递信息" 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方法,但是不知道如何随之而来。
有什么想法吗?
答案 0 :(得分:0)
您所要做的就是提供参数。 params
参数将自动创建数组。
SetDataSet(sqlString, param1, param2, param3, ..., paramN);
答案 1 :(得分:0)
您需要创建SQL参数吗?
像这样:
SqlParameter SqlParm = new SqlParameter("ID", SqlDbType.Int);
SqlParm.Value = 100;
如果您认为自己正在采用某种通用方式来完成所有数据库工作,那么最终将创建一个新层,但不会避免访问数据库的细节。
答案 2 :(得分:0)
您需要创建SQL参数吗?
像这样:
SqlParameter sqlP1= new SqlParameter("Id", SqlDbType.Int);
sqlP1.Value = 200;
答案 3 :(得分: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
参数后添加零或您需要的参数数量。