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;
}
我之前也遇到过同样的错误,我想是你存储过程的问题。尝试检查所有声明,特别是您的临时表。我不知道它是否适用于您。尽量避免使用相同的临时表名称。试试吧:)
检查列名,存储过程中的列必须与模型中声明的属性相同。
我有一个调用存储过程的函数。但它会抛出这样的异常:
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;
}
我之前也遇到过同样的错误,我想是你存储过程的问题。尝试检查所有声明,特别是您的临时表。我不知道它是否适用于您。尽量避免使用相同的临时表名称。试试吧:)
检查列名,存储过程中的列必须与模型中声明的属性相同。