0

我安装了 SqlHelper.DB NuGet 包(https://www.nuget.org/packages/SQLHelper.DB/)并且在将参数传递给 AddQuery 方法时遇到问题。我将 SqlParameter 列表传递给我的函数,但收到错误消息:“无法将参数值从 List`1 转换为 Int32。”

这是调用我的方法的代码:

SqlProcessor sqlproc = new SqlProcessor("Data Source = myserver; Initial Catalog = mydb; User ID = me; Password = $uper$ecret;");
List<SqlParameter> p = new List<SqlParameter>
{
    new SqlParameter("@MyParam1", "param1"),
    new SqlParameter("@MyParam2", "param2"),
};
List<dynamic> l = sqlproc.ExecuteNonQuery(new Models.SqlCommandHelper("dbo.spGoGadgetGo", p));

这是方法:

public List<dynamic> ExecuteNonQuery(SqlCommandHelper sch)
{
    var results = SQLHelper.CreateBatch()
        .AddQuery(sch.CommandType, sch.StoredProcedureName, sch.StoredProcedureParameters)
        .Execute();
    return results[0];
}

SqlCommandHelper 是我写的一个小类:

class SqlCommandHelper
{
    public SqlCommandHelper(string spName, List<SqlParameter> parameters)
    {
        StoredProcedureName = spName;
        StoredProcedureParameters = parameters;
        CommandType = CommandType.StoredProcedure;
    }

    public SqlCommandHelper(string queryString)
    {
        QueryString = queryString;
        CommandType = CommandType.Text;
    }

    public CommandType CommandType { get; set; }
    public string StoredProcedureName { get; set; }
    public string QueryString { get; set; }
    public List<SqlParameter> StoredProcedureParameters { get; set; }
}

非常感谢任何帮助!

4

0 回答 0