0

我创建了一个名为 的通用函数ExecuteProcedure<T>(T command, string parameters),现在在ExecuteProcedure我要转换的函数内部T into SqlCommand,这样我就可以使用SqlCommand's如下属性Parameters.Add()是我的代码。

T could be SqlCommand or SqlDataAdapter

这是我的代码:

public void ExecuteProcedure<T>(T command, string parameters)
{
    using (connection)
    {
        if (typeof(T) == typeof(SqlCommand))
        {
           //how to convert into SqlCommand Here to use command.CommandType Property below.
        }
        command.CommandType = CommandType.StoredProcedure;
        foreach (string param in parameters.Split(','))
        {
            SqlParameter par = new SqlParameter(param, param.Substring(1, param.Length - 1));
            command.Parameters.Add(par);
        }


        connection.Open();
        command.ExecuteNonQuery();
    }
}
4

2 回答 2

0

您可以使用此代码将 T 转换为 SqlCommand

SqlCommand cmd = (SqlCommand)Convert.ChangeType(command, typeof(SqlCommand));

无论如何感谢@Chris

于 2012-04-03T23:56:46.017 回答
0

我相信你所要做的就是:

SqlCommand cmd = (SqlCommand)(object)command;
于 2012-04-03T23:28:26.797 回答