私は C# が初めてで、数週間しか勉強していません。私はWindowsフォームとAccessデータベースを背後に持つアプリケーションを書いています。ユーザーが挿入した詳細をアクセスデータベースに追加したい。これまでに他のフォーラム(stackoverflowを含む)を調べましたが、実行時に「コマンドテキストがコマンドオブジェクトに設定されていませんでした」というエラーがスローされ続けます(下に表示される行を強調表示しました)。わからないし、捨てられない。どんな助けでも大歓迎です。ありがとうK
private void btnOkay_Click(object sender, EventArgs e)
{
string connectionString =
"provider=Microsoft.ACE.Oledb.12.0;" +
"data source=C:\\Users\\Documents\\StudentRegistrationDatabase.accdb";
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
string strSql = @"INSERT INTO StudentDetails ([Forename],[Surname],[CourseName],[DOB],)" +
"VALUES('"+txtFirstName.Text +"','" +txtLastName.Text +"','" +txtCourseName.Text +"','"+ txtDOB.Text +"')";
myOleDbConnection.Open();
OleDbCommand cmd = new OleDbCommand(strSql, myOleDbConnection);
cmd.Parameters.AddWithValue("@Forename", txtFirstName);
cmd.Parameters.AddWithValue("@Surname", txtLastName);
cmd.Parameters.AddWithValue("@CourseName", txtCourseName);
cmd.Parameters.AddWithValue("@DOB", txtDOB);
**myOleDbCommand.ExecuteNonQuery();** }
編集:返信ありがとうございます。この作品のコーディングを初めて開始したとき、次のコード行を使用しました。
' {
string connectionString =
"provider=Microsoft.ACE.Oledb.12.0;" +
"data source=C:\\Users\\Botterill\\Documents\\StudentRegistrationDatabase.accdb";
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
myOleDbConnection.Open();
myOleDbCommand.CommandText = "INSERT INTO StudentDetails ([Forename],[Surname],[CourseName],[DOB],)" +
"VALUES('" + txtFirstName.Text + "','" + txtLastName.Text + "','" + txtCourseName.Text + "','" + txtDOB.Text + "')";'
**myOleDbCommand.ExecuteNonQuery();**
しかし、太字の行で、「INSERT INTO ステートメントに構文エラーがある」という実行時エラーが発生していました。これは、投稿した最初の質問で行った変更で修正されると思いました。どんな助けでも大歓迎です。ありがとうケイト