无法使用 C# 将数据写入 MS Access 数据库
Can't write data into MS Access database with C#
我已经构建了一个成功的登录表单。但我想有机会创建一个新帐户。我有两个文本框;一个用于用户名,一个用于密码。单击按钮后,需要将此数据写入 MS Access 2002-2003 数据库文件。但是,当我单击该按钮时,出现以下错误消息:
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll
Additional information: Syntax error in INSERT INTO statement.
这是我使用的代码:
private void buttonRegistreren_Click(object sender, EventArgs e)
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "INSERT INTO Gebruikers (Username, Password) values('" + textBoxUserregist.Text + "', '" + textBoxPassregist.Text + "')";
command.ExecuteNonQuery();
connection.Close();
}
有人知道我做错了什么吗?
密码是MS-Access中的保留关键字,需要用方括号封装
command.CommandText = "INSERT INTO Gebruikers (Username, [Password]) ...."
说请记住,字符串连接构建 sql 命令是一种非常糟糕的做法,会导致许多问题。尽快开始使用参数,如下例所示
private void buttonRegistreren_Click(object sender, EventArgs e)
{
using(OleDbConnection cn = new OleDbConnection(.....))
using(OleDbCommand command = new OleDbCommand(@"INSERT INTO Gebruikers
(Username, [Password]) values(@name, @pwd)", cn))
{
cn.Open();
command.Parameters.Add("@name", OleDbType.NVarWChar).Value =textBoxUserregist.Text ;
command.Parameters.Add("@pwd", OleDbType.NVarWChar).Value = textBoxPassregist.Text;
command.ExecuteNonQuery();
}
}
我已经构建了一个成功的登录表单。但我想有机会创建一个新帐户。我有两个文本框;一个用于用户名,一个用于密码。单击按钮后,需要将此数据写入 MS Access 2002-2003 数据库文件。但是,当我单击该按钮时,出现以下错误消息:
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll Additional information: Syntax error in INSERT INTO statement.
这是我使用的代码:
private void buttonRegistreren_Click(object sender, EventArgs e)
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "INSERT INTO Gebruikers (Username, Password) values('" + textBoxUserregist.Text + "', '" + textBoxPassregist.Text + "')";
command.ExecuteNonQuery();
connection.Close();
}
有人知道我做错了什么吗?
密码是MS-Access中的保留关键字,需要用方括号封装
command.CommandText = "INSERT INTO Gebruikers (Username, [Password]) ...."
说请记住,字符串连接构建 sql 命令是一种非常糟糕的做法,会导致许多问题。尽快开始使用参数,如下例所示
private void buttonRegistreren_Click(object sender, EventArgs e)
{
using(OleDbConnection cn = new OleDbConnection(.....))
using(OleDbCommand command = new OleDbCommand(@"INSERT INTO Gebruikers
(Username, [Password]) values(@name, @pwd)", cn))
{
cn.Open();
command.Parameters.Add("@name", OleDbType.NVarWChar).Value =textBoxUserregist.Text ;
command.Parameters.Add("@pwd", OleDbType.NVarWChar).Value = textBoxPassregist.Text;
command.ExecuteNonQuery();
}
}