доброго всем.
есть программа, работающая с 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. 
Может кто подскажет что дельное?