我在将新数据插入MS Access 2007文件时遇到问题.它说我的SQL语句不正确.
这里有什么问题?我不擅长SQL.请指出我的错误.
try
{
// Open database connection.
objOleDbConnection.Open();
objOleDbCommand.CommandText =
"INSERT INTO PersonalData (Type, UserName, Password) VALUES ('" + cmbType.Text + "','" + txtUserName.Text + "','" + txtPassword.Text + "')";
// Execute creating table command.
objOleDbCommand.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)
首先,您需要在文本数据周围加上引号:
@"INSERT INTO PersonalData (Type, UserName, Password) VALUES (" + cmbType.SelectedIndex + ",'" + txtUserName.Text + "','" + txtPassword.Text + "')";
Run Code Online (Sandbox Code Playgroud)
但是,将转换为使用参数会更好,因为您不必担心嵌入式引号:
objOleDbCommand.CommandText = @"INSERT INTO PersonalData (Type, UserName, Password) VALUES (?, ?, ?)";
objOleDbCommand.Parameters.Add("Type", cmbType.SelectedIndex);
objOleDbCommand.Parameters.Add("UserName", txtUserName.Text);
objOleDbCommand.Parameters.Add("Password", txtPassword.Text);
Run Code Online (Sandbox Code Playgroud)