C# 异常消息,使用SqlDataAdapter填充datatable
我对SQL运行了一个简单的查询,但似乎无法使其正常工作C# 异常消息,使用SqlDataAdapter填充datatable,c#,stored-procedures,sqldataadapter,C#,Stored Procedures,Sqldataadapter,我对SQL运行了一个简单的查询,但似乎无法使其正常工作 DataTable loDTDOffre = new DataTable(); SqlCommand loSQLCommand = new SqlCommand("dbo.SP_StoredProc", loConnectionBD.ConnectionSql); loSQLCommand.CommandType = CommandType.StoredProcedure; loSQLCommand.Parameters.Add(
DataTable loDTDOffre = new DataTable();
SqlCommand loSQLCommand = new SqlCommand("dbo.SP_StoredProc", loConnectionBD.ConnectionSql);
loSQLCommand.CommandType = CommandType.StoredProcedure;
loSQLCommand.Parameters.Add("@liNoUnit", SqlDbType.Int);
loSQLCommand.Parameters["@liNoUnit"].Value = noUniteProduction;
SqlDataAdapter loSqlDataAdapter = new SqlDataAdapter(loSQLCommand);
loSqlDataAdapter.SelectCommand = loSQLCommand;
loSqlDataAdapter.Fill(loDTDOffre);
我的数据库连接已打开,在SQL Management Studio中执行的存储过程工作正常。我在VS2010中得到的所有错误消息是:
Warning: Fatal error 50000 occurred at May 30 2013 11:17AM. Note the error and time, and contact your system administrator.
Process ID 59 has raised user error 50000, severity 20. SQL Server is terminating this process.
是否有任何方法可以更清楚地了解错误,代码似乎是正确的。错误信息太笼统了,我不知道我做错了什么
我的存储过程返回一个简单的select,一行
谢谢结果它运行正常,结果如下: 对对象“thisTable”、数据库“thisDatabase”、架构“dbo”的选择权限被拒绝
修复了,谢谢。看到存储过程不会有什么坏处。我很好奇其中是否有一个
raiseerror
子句可能会导致这种情况。事实上,我认为问题在于您正在将StoredProcedure
命令类型分配给SelectCommand
。我会尝试抛弃您的SqlDataAdapter
,并将其替换为loddoffre.Load(loSQLCommand.ExecuteReader())代码>如果我运行SQL事件探查器,我看到我的查询(存储过程),从SQL Studio执行它,一切正常。我的存储进程中有一个“raiseerror”,但从未到达该行。VS2010中没有内部异常,“ExecuteReader”示例也无法获得有关异常的更多详细信息。