-1
我偶爾會收到一個SQL異常,並且無法找到此代碼導致無效MS SQL語句的任何方式。確定無效的查詢:ExecuteSqlCommand拋出:SqlException(0x80131904):錯誤的語法附近')'
jobsReady是IQueryable的< int>的
if (jobsReady.Count() > 0 && max > 0)
return this.Database.ExecuteSqlCommand("UPDATE TOP(" + max + ") Jobs SET ServerID=" + serverID + ",[email protected] WHERE ServerID IS NULL AND JobID IN (" + string.Join(", ", jobsReady) + ")",
new SqlParameter("@UpdateTime", System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "UpdateTime", global::System.Data.DataRowVersion.Current, false, DateTime.Now, "", "", ""));
return 0;
有時會拋出:
發生錯誤在Timer_Elapsed: System.Data.SqlClient.SqlException(0x80131904):不正確的語法附近 ')'。
什麼是生成的**實際**查詢? – Amy
將單條語句分成幾行。在調用'ExecuteSqlCommand'之前,使用本地字符串變量,分配命令字符串並詳細查看此字符串。你可以使用調試器,'Console.WriteLine()','MessageBox.Show()'或任何日誌機制。您確定變量'max'和'jobsReady'總是包含不會導致語法錯誤的值? – MarkusEgle
好主意,最大值是一個整數,jobsReady是一個IQueryable因此總是整數 –
Prometheus