我在執行存儲過程時遇到問題...這個自動生成的t-sql查詢有什麼問題?
我有試圖調用存儲過程的C#代碼。它看起來有點像這樣:
DataTable myDataTable = new DataTable();
using (SqlConnection connection = new SqlConnection(myConnectionString))
{
SqlCommand selectCommand = new SqlCommand("MyStoredProc", connection);
selectCommand.Parameters.Add(new SqlParameter("@myGuid", myGuid));
SqlDataAdapter da = new SqlDataAdapter(selectCommand);
da.Fill(myDataTable);
}
當我執行它,我收到寫着「附近有語法錯誤MyStoredProc'」的錯誤。
如果我跑SqlProfiler,我看到它試圖運行我的存儲過程是這樣的:
exec sp_executesql
N'MyStoredProc',
N'@myGuid uniqueidentifier',
@myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
果然,如果我嘗試做同樣的事情,我得到了同樣的錯誤。所以我的問題是:
- 生成的查詢有什麼問題?
- 爲什麼C#生成無效查詢?我在C#代碼中做錯了什麼?
編輯: Agent_9191釘它...我愚蠢地留出到的SelectCommand類型設置爲StoredProcedure的聲明。新產生的查詢是:
exec MyStoredProc @myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
這(當然)工作正常。
請顯示發生錯誤的實際存儲過程。我的直覺是,SQL有問題,而不是C#代碼。 – 2009-10-15 20:52:43
@Josh:不......它不是......我可以用任何隨機字符串(不存在的存儲過程)替換「MyStoredProc」,我仍然會得到錯誤...這真的是一個語法錯誤電話。 – Beska 2009-10-15 20:57:13