OleDbException не было обработано: SQL: столбец «Q0P2» не найден [обновить свободные таблицы dbf из oledataadapter]

Тем не менее, моя проблема не была решена, и поэтому я возвращаюсь с другой проблемой для обновления файла dbf [бесплатная таблица -vfp] из C # OleDbDataAdapter.

string MyConStr = "Provider=VFPOLEDB.1; Data Source='C:\\Temp'; Persist Security Info=False";

VFPDAp = new OleDbDataAdapter();
VFPDAp.InsertCommand = new OleDbCommand();
VFPDAp.UpdateCommand = new OleDbCommand();

VFPDAp.InsertCommand.CommandText = "insert into my_table1 (my_time,reminder) values(?, ?, ?)";
VFPDAp.UpdateCommand.CommandText = "update my_table1 set my_time=?, reminder=? where sl_no=? ";

VFPDAp.InsertCommand.Connection = OleCon1;
VFPDAp.UpdateCommand.Connection = OleCon1; 

OleDbParameter Par1 = new OleDbParameter("my_time", -1);
Par1.DbType = DbType.String;
Par1.SourceColumn = "my_time";
Par1.ParameterName = "my_time";

OleDbParameter Par2 = new OleDbParameter("reminder", -1);
Par2.DbType = DbType.String;
Par2.SourceColumn = "reminder";
Par2.ParameterName = "reminder";

OleDbParameter Par3 = new OleDbParameter("my_time", -1);
Par3.DbType = DbType.String;
Par3.SourceColumn = "my_time";
Par3.ParameterName = "my_time";

OleDbParameter Par4 = new OleDbParameter("reminder", -1);
Par4.DbType = DbType.String;
Par4.SourceColumn = "reminder";
Par4.ParameterName = "reminder";

VFPDAp.InsertCommand.Parameters.Add(Par1);
VFPDAp.InsertCommand.Parameters.Add(Par2);
VFPDAp.UpdateCommand.Parameters.Add(Par3);
VFPDAp.UpdateCommand.Parameters.Add(Par4);

OleCon1.ConnectionString = MyConStr;
OleCon1.Open();
VFPDAp.Update(VfpTbl);
OleCon1.Close();

Спасибо за помощь


person Paramu    schedule 05.10.2012    source источник
comment
Вы поймали исключение и определили точное утверждение, вызывающее ошибку   -  person Prabhu Murthy    schedule 05.10.2012
comment
Привет, Codelgnoto... спасибо...VFPDAp.Update(VfpTbl);   -  person Paramu    schedule 05.10.2012
comment
вставить в my_diary (my_time,напоминание) значения(?, ?) обновить my_diary установить my_time=? где напоминание=? Это решает мою проблему   -  person Paramu    schedule 05.10.2012


Ответы (1)


В вашем операторе Insert есть 3 символа "?" но только 2 параметра

insert into my_table1 (my_time,reminder) values(?, ?, ?)
(should it be 3 columns inserted or 2...)

update my_table1 set my_time=?, reminder=? where sl_no=?

Каждый "?" нужен собственный параметр, поэтому вам нужно всего 5 (или 6 через вставку)

person DRapp    schedule 05.10.2012