2014-01-15 2 views
0

Я создал следующий код в другом Form:Вставка новой строки в базе данных Access

Form2

private DataTable dataTable; 

internal void ReadTable(ref DataTable dt) 
{ 
    dataTable = dt; 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    DataRow dataRow = dataTable.NewRow(); 
    foreach (ListViewItem item in listView1.Items) 
    { 
     dataRow[item.SubItems[1].Text] = item.SubItems[item.SubItems.Count - 1].Text; 
    } 
    dataTable.Rows.Add(dataRow); 
} 

Form1

private void button1_Click(object sender, EventArgs e) 
{ 
    using (Form2 form = new Form2()) 
    { 
     form.ReadTable(ref dataTable); 
     form.ShowDialog(); 

     using (OleDbConnection oledbConnection = new OleDbConnection(connection)) 
     { 
     oledbConnection.Open(); 
     string query = "SELECT * FROM Student"; 
     using (OleDbCommand oledbCommand = new OleDbCommand(query, oledbConnection)) 
     { 
      using (OleDbDataAdapter oledbDataAdapter = new OleDbDataAdapter(oledbCommand)) 
      { 
       using (OleDbCommandBuilder oledbCommandBuilder = new OleDbCommandBuilder(oledbDataAdapter)) 
       { 
        oledbDataAdapter.DeleteCommand = oledbCommandBuilder.GetDeleteCommand(true); 
        oledbDataAdapter.InsertCommand = oledbCommandBuilder.GetInsertCommand(true); 
        oledbDataAdapter.UpdateCommand = oledbCommandBuilder.GetUpdateCommand(true); 
        oledbDataAdapter.Update(dataTable); 
       } 
      } 
      } 
      oledbConnection.Close(); 
     } 
    } 
} 

Почему дает мне ошибку синтаксиса в инструкции INSERT INTO заявление?

+0

Любые особенности на синтаксической ошибки? –

+0

Нет, это просто говорит мне, что есть синтаксическая ошибка :(Я попытался увидеть код команды INSERT INTO и оказался правильным – user3105160

+0

Не могли бы вы отредактировать свой вопрос и вставить полученный SQL-код команды вставки? –

ответ

2

Решение следующие:

... 
using (OleDbCommandBuilder oledbCommandBuilder = new OleDbCommandBuilder(oledbDataAdapter)) 
{ 
    oledbCommandBuilder.QuotePrefix = "["; 
    oledbCommandBuilder.QuoteSuffix = "]"; 
    oledbDataAdapter.DeleteCommand = oledbCommandBuilder.GetDeleteCommand(true); 
    oledbDataAdapter.InsertCommand = oledbCommandBuilder.GetInsertCommand(true); 
    oledbDataAdapter.UpdateCommand = oledbCommandBuilder.GetUpdateCommand(true); 
    oledbDataAdapter.Update(dataTable); 
} 
...