处理多个不同sql命令的C#方法
我想知道是否有可能实现一种方法,该方法可以处理多个sql命令,并为这些命令提供不同数量的参数。例如,我有一个处理多个不同sql命令的C#方法,c#,sql,command,C#,Sql,Command,我想知道是否有可能实现一种方法,该方法可以处理多个sql命令,并为这些命令提供不同数量的参数。例如,我有一个存储过程,它将插入表2(userid,address)值(@userid,@address),它接受一个参数@userid。而我有另一个存储过程插入到表1(userid,action,date)值(@userid,@action,@date) 我正在尝试实现一种通用方法,这样我就不需要为每个SQLCommands不断重写代码。我想到的是,我将把参数和控件列表作为参数存储到方法中,方法将按如
存储过程
,它将插入表2(userid,address)值(@userid,@address)
,它接受一个参数@userid
。而我有另一个存储过程插入到表1(userid,action,date)值(@userid,@action,@date)
我正在尝试实现一种通用方法,这样我就不需要为每个SQLCommands
不断重写代码。我想到的是,我将把参数和控件列表作为参数存储到方法中,方法将按如下方式处理其余的参数:
private void exeCommand(string cmdText, string[]param, string[]controls)
{
using(con = new SQLConnection(connectionString))
{
using(SQLCommand cmd = con.CreateCommand())
{
cmd.CommandText = cmdText;
cmd.CommandType = System.Data.Type.StoredProcedure;
foreach(string parameter in param)
{
foreach(Control ctrl in controls)
{
cmd.Parameters.AddWithValue(parameter, ctrl.Text);
}
}
con.Open();
cmd.ExecuteNonQuery();
}
}
}
这是正确的方法吗?或者有什么解决办法?谢谢您创建了如下功能:
1.使用此函数添加参数
public void AddParameters(SqlParameter Field)
{
Comm.Parameters.Add(Field);
}
使用此函数执行存储过程
public string Save(string SpName)
{
SqlConnection Conn = OpenConnection(); // connection open function you create this funciton
String rv = string.Empty;
try
{
Comm.Connection = Conn;
Comm.CommandText = SpName;
Comm.CommandType = CommandType.StoredProcedure;
Comm.ExecuteNonQuery();
rv = ("Successfully Saved.");
}
catch (Exception ex)
{
rv = ("Fails :" + ex.ToString());
}
finally
{
if (Conn.State != ConnectionState.Closed)
Conn.Close();
}
return rv;
}
签名应为:…EXECOMAND(字符串cmdText、字符串[]参数、控件[]控件)。另外,请指定该参数是一个输入参数,因为您的方法看起来不错。。坚持下去:)“可能”和“明智”是两码事。说到这里,为什么参数
和控件
数组不同?param
中的条目和控件的条目(在同一索引?)之间不应该存在1:1的关系吗?如果是这样的话,最好是以某种方式将它们结合起来。可能在SqlParameter
类中。嘿,那已经存在了…——现在使用它的方式是,将param
与控件相乘。Comm
从何而来?为什么使用try..catch..finally
而不是使用?