使用microsoft访问在数据库中添加数据

本文关键字:添加 数据 数据库 microsoft 访问 使用 | 更新日期: 2023-09-27 17:57:32

我真的不能在数据库中添加任何数据,我可以读取数据库中的内容,但不能写入,我尝试了很多代码,但都没有成功:(我最终得到了这个代码,

private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string user = textBox1.Text;
                string pass = textBox2.Text;
                string myExecutequery = "INSERT INTO Accountstbl (Username,Password) VALUES (@user,@pass)";
                OleDbCommand cmd = new OleDbCommand(myExecutequery, con);
                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(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'12-014s'My Documents'applications'Database'WindowsFormsApplication1'Form3.cs:line 31

有人帮我一下:(

使用microsoft访问在数据库中添加数据

string myExecutequery = "INSERT INTO Accountstbl (Username,Password) VALUES 
(@user,@pass)";
con.Open();
try
{
 OleDbCommand cmd = new OleDbCommand(myExecutequery, con);
 cmd.Parameters.Add("@user", user);
 cmd.Parameters.Add("@pass", pass);     
 cmd.ExecuteNonQuery();
 cmd.Dispose();
 cmd = null;
}
catch(Exception ex)
{
  throw new Exception(ex.ToString(), ex);
}
finally
{
 con.Close();
}

您的查询应该是这样的

string myExecutequery = "INSERT INTO Accountstbl (Username,Password) VALUES 
('"+ user +"','"+ pass +"')";

在将连接添加到oleDBCommand(如)之前,您需要打开该连接

con.Open();

试试看。

       string SqlString = "Insert Into Accountstbl (Username, Password) Values (@user, @pass)";
        using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:''test.accdb")) //Your Connection string
        {
            using (OleDbCommand cmd = new OleDbCommand(SqlString, conn))
            {
                string use = userTextBox.Text;
                string pass = passTextBox.Text;
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.AddWithValue("@use", use);
                cmd.Parameters.AddWithValue("@pass", pass);
                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }

我知道这应该是可行的,但我在Microsoft Access 2012中测试了这个代码,得到了这个错误:

Syntax error in INSERT INTO statement.

这将是MSAccess bug的一个错误:ADO记录集上的"INSERT INTO中的语法错误…"。更新