使用OLE DB . net提供程序插入数据库表不工作
本文关键字:数据库 插入 工作 程序 OLE DB net 使用 | 更新日期: 2023-09-27 18:10:24
当到达cmd.ExecuteNonQuery
时,我得到INSERT INTO
命令的"语法错误"的错误消息。
我使用string.Format
是很重要的,并且结构保持尽可能接近当前结构。
{
OleDbConnection con = DAL.GetConnection();
con.Open();
if (con.State == ConnectionState.Open)
{
string s = string.Format("INSERT INTO DataTable1 (Username, Password, FName, LName, Bdate, Sex, City, Mail) VALUES ('{0}', '{1}', '{2}', '{3}', #{4}#, {5}, {6}, '{7}')", uname, pass, fname, lname, bd, sex, city, mail);
OleDbCommand cmd = DAL.GetCommand(con, s);
int check = cmd.ExecuteNonQuery();
if (check == 0)
{
con.Close();
Response.Redirect("Reg.aspx?err=-An error has occured. Please try again-");
}
谢谢。
可能你在传递的文本中有一些引号,尝试使用参数…
string s = "INSERT INTO DataTable1 (Username) VALUES (@user)";
OleDbCommand cmd = DAL.GetCommand(con, s);
//Add the parameter ...
OleDbParameter nam = new OleDbParameter("@user",uname);
cmd.Parameters.Add(nam);
查看OleDbCommand。参数,如果还没有的话。它更安全(类似于@Mark B的注释),并且可能会清除您的语法错误。
如果坚持使用纯String.Format
方法,只需输出cmd.CommandText
以便调试,以查看语法错误在哪里。