Ошибка команды вставки OleDB
у меня есть база данных (я использую MS ACCESS) у меня есть этот код вставки, я могу читать данные, но получил ошибку при записи, я следую инструкции, но это не сработало вот мой код
OleDbConnection con = new OleDbConnection(@" provider=Microsoft.ace.Oledb.12.0; data source=sisc-erelim_PrintingVTDBDBVirginiTEADB2.accdb; Persist Security Info=False");
private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                OleDbCommand cmd = new OleDbCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "INSERT INTO Accountstbl (Username, Password)" + "VALUES ('" + textBox1.Text + "','" + textBox2.Text + "')";
                cmd.Parameters.AddWithValue("@Username", textBox1.Text);
                cmd.Parameters.AddWithValue("@Password", textBox2.Text);
                cmd.Connection = con;
                con.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                textBox1.Text = ex.ToString();
            }
и я всегда получал эту ошибку,
System.Data.OleDb.OleDbException: Syntax error in INSERT INTO statement.
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   at VirginiTEAcorp.Form3.button1_Click(Object sender, EventArgs e) in C:Documents and Settings-014sMy DocumentsapplicationsDatabaseWindowsFormsApplication1Form3.cs:line 34
4 ответов
определен @Username и @Password параметры, но вы никогда не использовали в своей команде sql.
как насчет?
cmd.CommandText = "INSERT INTO Accountstbl (Username, [Password]) VALUES (@Username, @Password)";
cmd.Parameters.AddWithValue("@Username", textBox1.Text);
cmd.Parameters.AddWithValue("@Password", textBox2.Text);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
также вы должны использовать Password в квадратных скобках на вашей команде sql, как [Password] потому что это reserved keyword в MS Access.
если вы этого не сделаете, это может вызвать ошибку, например;
неверный синтаксис рядом с ключевым словом "Password"
попробуйте изменить этот путь
 cmd.CommandText = "INSERT INTO Accountstbl (Username, Password) VALUES (@Username,@Password)";
в инструкции insert требуется пробел:
ssword)" + "VALUES ('" 
например, в вашем заявлении вы объединились, не допуская пробела.
должно быть:
ssword)" + " VALUES ('" 
например.
можно так :
cmd.CommandText = "INSERT INTO Accountstbl (Username, [Password]) VALUES (@Username,@Password)";
            cmd.Parameters.AddWithValue("@Username", textBox1.Text);
            cmd.Parameters.AddWithValue("@Password", textBox2.Text);
Я надеюсь, что это будет работать.
поднять вверх.
