我试图知道是否可以实现一个方法来处理多个sql命令,这些命令具有不同数量的命令参数。例如,我有一个stored procedure
,INSERTS INTO table2 (userid, address) VALUES (@userid, @address)
接受参数@userid
。虽然我有另一个stored procedure
Inserts INTO table1 (userid, action, date) VALUES (@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();
}
}
}
这是正确的方法吗?或者有任何解决方案吗?谢谢
答案 0 :(得分:0)
你创建这样的函数: 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;
}