C#处理多个不同sql命令的方法

时间:2016-05-17 08:50:59

标签: c# sql command

我试图知道是否可以实现一个方法来处理多个sql命令,这些命令具有不同数量的命令参数。例如,我有一个stored procedureINSERTS 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();
      }
   }

}

这是正确的方法吗?或者有任何解决方案吗?谢谢

1 个答案:

答案 0 :(得分:0)

你创建这样的函数: 1.使用此功能添加参数

 public void AddParameters(SqlParameter Field)
{
    Comm.Parameters.Add(Field);
}
  1. 使用此功能执行存储过程

         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;
    }