【发布时间】:2012-10-31 08:26:04
【问题描述】:
我有一个这样的方法:
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 方法,但不知道如何实现。
有什么想法吗?
【问题讨论】:
-
看来你需要学习一下集合和数组。
-
你的参数从何而来?
-
如果你在
testMethod生成查询,为什么不把参数一次性嵌入到字符串中呢? -
您的方法中不需要
SqlDataAdapter,DataSet也是多余的。检查新创建的连接是否关闭也是没有意义的。我建议不要将 sql 字符串和参数传递给方法,而是创建像InsertProduct(具有适当的强类型属性)或其他任何方法,因为这样更不容易出错且更可重用。
标签: c# sql methods parameters