返回多个结果集ado.net的通用方法

时间:2014-04-09 14:46:24

标签: c# ado.net

我有以下通用方法,在读取1个结果集时非常有效。我一直在努力编写一个泛型方法来返回多个结果集 你可以给我一个手或建议如何将下面的一个变成一个返回/处理多个结果集的方法。

用法:

const string spName = "GetCountry";
object[] parms = { "@CountryId", countryId };
myDto dto = spName.GetOne(ToDto, parms);
return model;



public static T GetOne<T>(this string spName,
                                           Func<IDataReader, T> createObject,
                                           object[] parms = null)
{
    try
    {

        using (var connection = new SqlConnection(ConnectionString))
        {
            using (var command = new SqlCommand())
            {
                command.Connection = connection;
                command.CommandType = CommandType.StoredProcedure;

                command.CommandText = spName;
                command.SetParameters(parms);

                connection.Open();

                T t = default(T);
                var reader = command.ExecuteReader();
                if (reader.Read())
                {
                    t = createObject(reader);
                }

                return t;
            }
        }
    }
    catch (SqlException ex)
    {
        etc......
    }

    return default(T);
}

一个例子是:具有地址的客户(SP将通过在sp内返回2个结果集来返回客户所有相关地址) 非常感谢任何建议

0 个答案:

没有答案