0

Access db に書き込もうとしています。OLE DB 接続は、メイン フォーム (mainFrm) に格納されます。アプリの他の部分でも同じ接続を使用して読み取りと書き込みを行います。何らかの理由で、この 1 つの場所で、構文エラーがあると表示されます。私はそれを別の方法で書いてみましたが、それでも同じエラーメッセージが表示されます

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();
4

2 に答える 2

0

Notes was はアクセスのキーワードなので、テーブル名には使用できませんでしたが、テーブル名を変更すると問題なく機能しました。

于 2013-11-05T17:47:04.053 に答える