2015-04-27 4 views
0

Вышеупомянутый не будет сгенерировано исключение визуальной студии, когда я бегу результат компиляции этого кода в:Нет Значение, заданное для одного или нескольких требуемых параметров C#

requete = @"select v.[*] from Visite v, Infirmière i where v.[code_inf] = i.[code_inf]" /* + 
      " and i.[nom_inf]='" + nom + "'" + 
      " and i.[prenom_inf]='"+prenom+"'"+ 
      " and v.[date_visite]=to_date('" + d.ToString().Substring(0, 10)+"','DD/MM/YYYY')" */ 
      ; 
MessageBox.Show(requete); 


OleDbCommand dbc = new OleDbCommand(requete, connec); 

OleDbDataReader dr = dbc.ExecuteReader(); 

while(dr.Read()) 
{ 
    dgv_res.Rows.Add(dr.Read()); 
} 

dgv_res является компонентом DataGridView и connec это открытое соединение.

Я прокомментировал часть моего запроса, чтобы увидеть, была ли в нем ошибка SQL, но я действительно не вижу, что не так в первой строке, и я продолжаю получать это исключение. Я неоднократно проверял имена столбцов и таблиц.

Это

нет значения приведены для одного или нескольких требуемых параметров

отбрасывается, где я создаю OleDbDataReader я думаю.

Спасибо за чтение!

+0

Разместите его, пока не найдете свою проблему. Работает ли SELECT * FROM Visite? – nvoigt

+1

Иногда эта ошибка может быть выбрана из-за синтаксической ошибки в запросе. Вы пытались выполнить этот оператор в инструменте SQL? Вызывается ли какая-либо ошибка или выполняется ли она правильно? –

+0

Или добавьте параметр со значением в свой 'OleDbCommand' и посмотрите, где он точно сменится :) –

ответ

1

AFAIK, вы не можете использовать [] с * и поскольку поставщик OLE DB не заботится именованные параметры, то может думаю, что это [*] является параметром и ожидать, что значение параметра для него.

Если все это okey, кроме этого, это должно работать;

@"select v.* from Visite v, Infirmière i where v.[code_inf] = i.[code_inf]" 

С [*], движок базы данных думает, что имя столбца с именем *точно, не все столбцы в таблице v.

+1

Я не думал, что это может быть так просто, но это работает сейчас! Большое спасибо :) – JeanBonbeurre