C# 中的 SQLException

SqlException in c#

我有一个调用存储过程的函数。但它会抛出这样的异常:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
Additional information: Invalid column name 'quantity'.

Invalid column name 'quantity'.
Invalid column name 'location'.
Invalid column name 'quantity'.
Invalid column name 'quantity'.
Invalid column name 'quantity'. ...

我不明白为什么抛出这个异常,因为存储过程在 MSSMS 中工作正常。

这是我调用存储过程的代码:

public DataSet getDataTable_sp(string sp_name, SqlParameter[] p = null)
{
            DataSet ds = new DataSet();

            using (SqlConnection conn = new SqlConnection(Connstr))
            {
                SqlDataAdapter da = new SqlDataAdapter(sp_name,conn);
                da.SelectCommand.CommandType = CommandType.StoredProcedure;
                da.SelectCommand.CommandTimeout = 300;

                if (p != null)
                    for (int i = 0; i < p.Count(); i++)
                        da.SelectCommand.Parameters.Add(p[i].ParameterName, p[i].SqlDbType, p[i].Size).Value = p[i].Value;

                conn.Open();
                da.Fill(ds); // this is the line that the exception is thrown
                conn.Close();
            }

            return ds;
}

我之前也遇到过同样的错误,我想是你存储过程的问题。尝试检查所有声明,特别是您的临时表。我不知道它是否适用于您。尽量避免使用相同的临时表名称。试试吧:)

检查列名,存储过程中的列必须与模型中声明的属性相同。