我已經得到了這段代碼,我試着在一個accessdatabase數據表裏面指定具有payrollno的行[Holiday]。SELECT COUNT查詢錯誤
string CountHolidayQuery = "SELECT COUNT FROM [Holiday] WHERE PayrollNo = @PayrollNo";
var CountHoliday = new OleDbCommand(CountHolidayQuery, conn);
CountHoliday.Parameters.AddWithValue("@PayrollNo", OleDbType.Integer).Value = GotPayroll;
int TotalHolidays = Convert.ToInt32(CountHoliday.ExecuteNonQuery());
我得到這個錯誤,但我想我已經添加了參數?
拋出異常:「System.Data.OleDb.OleDbException」在System.Data.dll中 其它信息:沒有用於一個或多個必需參數給定值。
發佈一個鏈接到一個著名的博客文章中解釋AddWithValue的問題的行爲。在本質上。 AddWithValue無法知道接收字段的數據類型是什麼。所以它使用傳遞參數的數據類型。然後數據庫引擎需要將其轉換回該字段所期望的數據類型。這些轉換對於獲得正確結果都至關重要。有時他們不像您想象的那樣工作(特別是使用日期和小數點/浮點值) – Steve