当前位置:编程学习 > C#/ASP.NET >>

mycmd.ExecuteNonQuery();

string strConnnection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
        strConnnection += Server.MapPath(".\\App_Data\\news.mdb");
        OleDbConnection myconn = new OleDbConnection(strConnnection);

        string sql = "insert into user(Fristname,Lastname,Email,Companyname,Companyaddress,Occupation,Datetime)values('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "','" + TextBox5.Text.Trim() + "','" + TextBox6.Text.Trim() + "''" + DateTime.Now.ToString() + "')";

        OleDbCommand mycmd = new OleDbCommand(sql,myconn);
        mycmd.Connection.Open();
        mycmd.ExecuteNonQuery();
        mycmd.Connection.Close();

运行后提示 "INSERT INTO 语句的语法错误。"

请问我的insert语句哪有问题 请高手指点 --------------------编程问答--------------------  TextBox6.Text.Trim()   +   "''"   +   DateTime.Now.ToString

---------
 TextBox6.Text.Trim()   +   "','"   +   DateTime.Now.ToString --------------------编程问答-------------------- 没懂! --------------------编程问答-------------------- 不是 ","  的事 我代码上 这个"," " --------------------编程问答-------------------- mycmd.ExecuteNonQuery(); 之前加一句 MessageBox.Show(sql) 就应该很直观了! --------------------编程问答-------------------- 不好使啊 哪为高手给看看呗 怎么会语法错误呢? --------------------编程问答-------------------- )values(

-----------------
) values (

加空格看看  --------------------编程问答--------------------
string   sql   =   "insert into user(Fristname,Lastname,Email,Companyname,Companyaddress,Occupation,Datetime)values('"+TextBox1.Text.Trim()+ "','" +TextBox2.Text.Trim()+"','" +TextBox3.Text.Trim()+"','"+TextBox4.Text.Trim()+"','"+TextBox5.Text.Trim()+"','"+TextBox6.Text.Trim()+ "','"+DateTime.Now.ToString()+"')"; 

--------------------编程问答-------------------- 严重怀疑"user"是个特殊的名称... --------------------编程问答-------------------- 这样看代码晕完去!用MessageBox.Show(sql)看一下啊 --------------------编程问答-------------------- [user] --------------------编程问答-------------------- ,'"   +   TextBox6.Text.Trim()   +   "'缺少逗号。
datetime.now 类型为DATETIME。 --------------------编程问答-------------------- ACCESS数据库最好都要加上[] --------------------编程问答-------------------- 首先;把 TextBox6.Text.Trim()   +   "''"   +   DateTime.Now.ToString()   +   "'

===========
改成
TextBox6.Text.Trim()   +   "','"   +   DateTime.Now.ToString()   +   "'


==========
其次,把 user 添加上【】,就是更改成【user】。

再试试。 --------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- 赞成13楼的说法 --------------------编程问答-------------------- 再不行就这样
"',#"   +   DateTime.Now.ToString()   +   "#)"; 
--------------------编程问答-------------------- 如果是user为数据库保留字的原因,报错信息不会是这样的,当然改为[user]要好得多。

红色部分是我修改的:TextBox6.Text.Trim()   +   "'[color=#FF0000],'"   +   DateTime.Now.ToString()   +   "')";

其实在日期型的数据前加#号是Access的SQL语法,SQL Server的SQL语法并不是如此。你的SQL语句其实就是少了个逗号。

此外,说句题外话,如果你在代码里这么写SQL语句,我要运行你的程序,就能通过你给的这些文本框就可以将你的数据库里的数据进行篡改和删除,这叫注入式SQL代码攻击。直接在源码里写SQL语句是在数据库操作中最不提倡的做法。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,