Многоразовый код для извлечения данных - PullRequest
0 голосов
/ 05 июня 2011

Я нашел очень хороший метод для извлечения любого набора результатов из базы данных, просто указав имя хранимой процедуры. Я думаю, что код очень многократно используется. Код выглядит следующим образом

using System.Data;
using System.Data.SqlClient;

private DataSet GetFreshData(string sprocName)
{
    using ( SqlConnection conn = new SqlConnection() )
    {
        using ( SqlDataAdapter da = new SqlDataAdapter() )
        {        
            da.SelectCommand = new SqlCommand();
            da.SelectCommand.CommandText = sprocName;
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            da.SelectCommand.Connection = conn;

            DataSet ds = new DataSet();

            try
            {
                da.SelectCommand.Connection.Open();
                da.Fill(ds);
                da.SelectCommand.Connection.Close();
            }
            catch
            {
                return null;
            }
            finally
            {
                // do other things...calling Close() or Dispose() 
                // for SqlConnection or SqlDataAdapter objects not necessary
                // as its taken care of in the nested "using" statements
            }

            return ds;
        }
    }
} 

мой вопрос: может ли кто-нибудь предложить модификацию этого метода, когда хранимой процедуре необходимо указать несколько параметров

1 Ответ

3 голосов
/ 05 июня 2011

Легко! :) принять SqlParameter[] в качестве второго аргумента функции.

Затем убедитесь, что da.SelectCommand.Parameters заполнен списком SqlParameter объектов в SqlParameter[]

...