Когда я использую этот код, он возвращает каждую строку в таблице, и я понятия не имею, почему.Выберите оператор, игнорирующий параметры?
string SelectOleDb = "SELECT Top 1 * From `Employee Info` Where [Employee Name][email protected]" Order By ID DESC";
OleDbConnection OleDbCon = new OleDbConnection(EmployeeInfo.Properties.Settings.Default.cstrEmployeeInfoDatabase);
OleDbDataAdapter OleDbAdpt = new OleDbDataAdapter();
OleDbCommand OleDbCom = new OleDbCommand(SelectOleDb, OleDbCon);
OleDbCom.Parameters.AddWithValue("@EmployeeName", employee_NameComboBox.Text);
OleDbAdpt.SelectCommand = OleDbCom;
DataSet FooDS = new DataSet();
OleDbCon.Open();
OleDbAdpt.Fill(FooDS);
OleDbCon.Close();
OleDbCon.Dispose();
DataTable EmployeeInfo = FooDS.Tables[0];
И я даже копировать вставить значение из столбца Имя сотрудника в текстовое поле для проверки я использовал действительное имя сотрудника. Я бы ожидал, что ничего не будет возвращено, а не все, если утверждение было неверным.
UPDATE: Я также попытался удалить Именованный параметр «@EmployeeName» и ввести жесткое имя, окруженное одинарными кавычками. И все же оператор возвращает все, что в Сотрудника Информация
Ваш идентификатор процитировать кажется немного шизофреник ... 'Сотрудник Info' использует кавычку и' Сотрудник name' использует скобки.По моему опыту, один или другой будет работать с данной СУБД, но я не знаю ни одной поддержки сразу. Какой тип СУБД вы используете? – cHao
Вы запустили его в отладчике, чтобы убедиться, что значения есть? –
Я не считаю, что OleDb поддерживает именованные параметры. Попробуйте использовать вопросительные знаки в вашей строке выбора вместо названных параметров. Не забудьте добавить параметры в том же порядке, что и в инструкции sql. –