使用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
有人帮我一下:(
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中的语法错误…"。更新