доброго всем.
есть программа, работающая с MS Access. с бд выполняются 4 простейших операции: Delete, Update, Select, Insert.
проблема в том, что все операции работают как надо, за исключением INSERT.
бд заполняю так:
string connectionString="provider=Microsoft.JET.OLEDB.4.0; data source = c:\\Program files\\my\\codebar\\codebar.mdb";
string commandString = "Select * from Maint";
myConnection = new System.Data.OleDb.OleDbConnection(connectionString);
myConnection.Open();
DataSetDS = new DataSet();
myAdapterDS = new System.Data.OleDb.OleDbDataAdapter();
System.Data.OleDb.OleDbCommand command=new System.Data.OleDb.OleDbCommand();
command.CommandText=commandString;
command.Connection=myConnection;
myAdapterDS.SelectCommand=command;
myAdapterDS.TableMappings.Add("Table","Maint");
myAdapterDS.Fill(DataSetDS,"Maint");
System.Data.OleDb.OleDbCommandBuilder com = new System.Data.OleDb.OleDbCommandBuilder(myAdapterDS);
dataTableDS = new DataTable();
dataTableDS = DataSetDS.Tables["Maint"];
при добавлении новой записи:
DataRow dr=dataTableDS.NewRow();
try
{
dr["ref"]=index;
if (tb_Date.Text.Length>0)
{
dr["date"]=Convert.ToDateTime(tb_Date.Text);
}
dr["technicien"]=tb_Technicien.Text;
dr["operation"]=tb_Operation.Text;
dataTableDS.Rows.Add(dr);
myAdapterDS.Update(dataTableDS);
DataSetDS.AcceptChanges();
MessageBox.Show("Donnees sont ajoutees");
dataRow=dr;
PopulateLB();
}
catch (System.Data.OleDb.OleDbException ex)
{
DataSetDS.RejectChanges();
MessageBox.Show(ex.Message);
}
на команде myAdapterDS.Update() вылетает ошибка неправильно задана команда INSERT INTO.
самое интересное, что в dataTableDS строка заносится без проблем. Правда ключевое поле (в коде его не видно) равно null.
Может кто подскажет что дельное?