2013-05-30 93 views
1

我對SQL運行一個簡單的查詢,似乎無法使其正常工作。異常消息,用SqlDataAdapter填充數據表

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,一行。

感謝

+0

看到存儲過程不會有什麼傷害。我很好奇,如果在那裏有一個「raiseerror」條款可能會導致這種情況。 –

+1

其實我認爲問題在於你正在爲'SelectCommand'分配一個'StoredProcedure'命令類型。我會嘗試拋棄你的'SqlDataAdapter'並用'loDTDOffre.Load(loSQLCommand.ExecuteReader())替換它;' –

+0

如果我運行SQL Profiler,我會看到我的查詢(存儲過程),從SQL Studio執行它,這一切作品。我存儲的proc中有一個「raiseerror」,但這條線永遠不會到達。在VS2010中沒有內部異常,試圖獲得有關異常的更多細節,但「ExecuteReader」示例也不起作用。 –

回答

0

原來它運行在一個approle,這個就出來了:

的SELECT權限被拒絕的對象 'thisTable',數據庫 'thisDatabase',架構 'DBO'。

固定,謝謝。