摘要:在對 Access 做存取的時候,參數明明都有正確進去,為什麼還是取不到東西...?
Access 跟 SQL Server 的參數語法不太一樣,
雖然在 ADO.NET 這一端它也支援防止 SQL Injection 用的參數化語法,
但是在 Access 這一端卻不認得什麼參數名稱,只認得參數的「順序」,
因此,如果發生類似的狀況,請將參數的順序調整到跟您的 T-SQL 語法一致,
例如:
cmd.CommandText = "select * from xxx where name like '%' + @name + '%' and catelogID=@catelogID"; cmd.Parameters.Add(new OleDbParameter("@name", OleDbType.VarChar)).Value=name; cmd.Parameters.Add(new OleDbParameter("@catelog", OleDbType.BigInt)).Value=catelogID;
加入參數的順序必須跟 T-SQL 語法各參數出現位置的順序一致,
不然會除錯除到沒辦法回家............