使用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-");
                }

谢谢。

使用OLE DB . net提供程序插入数据库表不工作

可能你在传递的文本中有一些引号,尝试使用参数…

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以便调试,以查看语法错误在哪里。