插入命令语法错误c#

时间:2013-10-28 17:16:57

标签: c# oledb

我正在尝试写入Access数据库。 OLE DB连接存储在主窗体(mainFrm)上。我在我的应用程序的其他部分使用相同的连接进行读写。出于某种原因,在这一点,它说我有语法错误。我尝试过不同的方式编写它但仍然得到相同的错误消息

public OleDbConnection newCon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\MorganWillis\Documents\PlannerAppData\MainDB.accdb");`

ListViewItem newnote = new ListViewItem(nameTextBox.Text);
newnote.SubItems.Add(DateTime.Today.ToShortDateString());
newnote.SubItems.Add(noteTextBox.Text)`

mainFrm.notesList.Items.Add(newnote);

string tempname = nameTextBox.Text;
DateTime now = DateTime.Today;
string tempnote = noteTextBox.Text;

if(mainFrm.newCon.State == ConnectionState.Closed)
    mainFrm.newCon.Open();

OleDbCommand noteCom = new OleDbCommand("INSERT INTO Notes (noteName, noteDate, note)" + "VALUES (?,?,?)", mainFrm.newCon);

noteCom.Parameters.Add("noteName", OleDbType.Char, 50, "noteName").Value = tempname;
noteCom.Parameters.Add("noteDate", OleDbType.DBDate, 8, "noteDate").Value = now.ToShortDateString();
noteCom.Parameters.Add("note", OleDbType.Char, 1000, "note").Value = tempnote;

OleDbDataAdapter noteadapt = new OleDbDataAdapter();
noteadapt.InsertCommand = noteCom;
noteadapt.InsertCommand.ExecuteNonQuery();

mainFrm.newCon.Close();

Close();

2 个答案:

答案 0 :(得分:3)

您的查询中间有一个错误的+ 它必须被淘汰。

答案 1 :(得分:0)

Notes是访问中的一个关键词,所以它不允许我将它用于表名,但是当我更改表名时,它比你们所有人都帮忙工作得好!