這裏給出的值是數據庫層功能的代碼:C#asp.net:錯誤 - 沒有爲一個或多個必需參數
public static dsPersonnel GetPersonnel(string Database, string strSearch)
{
dsPersonnel DS;
OleDbConnection sqlConn;
OleDbDataAdapter sqlDA;
//create the connection string
sqlConn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Database);
string query;
if (strSearch == "" || strSearch.Trim().Length == 0)
{
query = "SELECT * from tblPersonnel";
}
else
{
query = "SELECT * FROM tblPersonnel WHERE LastName = " + strSearch + "";
}
//create the adapter with query
sqlDA = new OleDbDataAdapter(query, sqlConn);
//create the dataset
DS = new dsPersonnel();
//fill the data set
sqlDA.Fill(DS.tblPersonnel);
//return the dataset
return DS;
}
}
如果回發提交了一個空字符串我有它返回的所有記錄。但是當一個實際的字符串被傳遞給函數時,我得到錯誤「沒有給出一個或多個所需參數的值」。對於行
sqlDA.Fill(DS.tblPersonnel);
在調試中,我驗證了字符串正在爲兩種情況構建正確,但我得到後者的錯誤。 我知道我應該使用參數化查詢,但這是我在課堂上學習過程中的一步。一次一個問題:)。有關這裏的問題的任何建議是?
您的代碼可以廣泛應用於[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)。 – Oded 2011-03-27 20:49:03