insert into语句错误?
大家快帮帮我,我都头大了,当我点击添加按钮后,总是提示insert into语句语法错误,这事为啥,这个语句应该没错啊?public static void news_add(string title,string content,string editer,string shijian)
{
OleDbConnection conn = xwndb.con();
OleDbCommand cmd = new OleDbCommand("insert into news(title,content,editer,date) values('" +title+ "','" +content+ "','" +editer+ "','" + shijian + "')", conn);
cmd.ExecuteNonQuery();
}
拜托大家了。。。。。
--------------------编程问答-------------------- 最好不要这样拼sql.
想找到原因,将F5 sql调试出来.
string strSQL = "insert into news(title,content,editer,date) values('" +title+ "','" +content+ "','" +editer+ "','" + shijian + "')",
另:
data==>[date]
--------------------编程问答-------------------- 调试看看 参数value
--------------------编程问答-------------------- 请不要用SQl连接啊,用参数啊,这样很容易被注入啊,
是不是因为你的string title,string content,string editer,string shijian
包含''特殊字符???? --------------------编程问答-------------------- OleDbCommand cmd = new OleDbCommand("insert into news(title,[content],editer,date) values('" +title+ "','" +content+ "','" +editer+ "','" + shijian + "')", conn);
SQL保留字,加个括号啊!
建议最好用参数啊,防止注入啊! --------------------编程问答-------------------- LZ还没毕业 鉴定完毕 --------------------编程问答-------------------- date也是保留字啊.. --------------------编程问答-------------------- 看你传入的值有没有特殊字符,还有关键字是要加[]的 --------------------编程问答-------------------- 用可变字符字符串对象来写sql语句。StringBuilder --对象。
--------------------编程问答-------------------- 楼主,不要急,一步步调试,看看到底哪里出错了,还有,最好把sql放到管理器里执行一下,看是否能成功, --------------------编程问答--------------------
试试 --------------------编程问答-------------------- 用sql打出来看看,数据库里date是不是nvarchar类型的啊? --------------------编程问答-------------------- 调试,将SQl字符串放进数据库中执行一下! --------------------编程问答-------------------- 跟踪下sql就可以了啊 --------------------编程问答-------------------- 把你的insert语句放到数据库中建个查询试试,有可能是关键字的问题,建表或字段时尽量不要使用关键字 --------------------编程问答-------------------- 估计是字段中关键字的问题 --------------------编程问答-------------------- date 是MYSQL函数DATE() 函数返回日期或日期/时间表达式的日期部分。另CONN.OPEN在哪里啊 --------------------编程问答-------------------- 再或者你插入的字符串中有单引号之类的 --------------------编程问答-------------------- 放到 查询分析器 分析下 就知道 问题了哦 --------------------编程问答-------------------- 列名如果是数据库保留字,要加[],还有就是你的Date字段,如果是Date类型的话,不能用‘’插入的吧 --------------------编程问答-------------------- 对啊date必须改为[date],最好不要用连接,强烈推荐用参数。如果真是者条SQL错误,应该很容易调试出来的。楼主别急 --------------------编程问答--------------------
("insert into news(title,content,editer,[date]) values ('" +title+ "','" +[content]+ "','" +editer+ "','" + shijian + "')",--------------------编程问答-------------------- --------------------编程问答-------------------- 用参数啊,这样一目了然
--------------------编程问答-------------------- 来个完整的吧
string sql = "insert into news(title,[content],editer,[date]) values(@title,@content,@editer,@date)";
OleDbCommand cmd = new OleDbCommand(sql,conn);
cmd.Parameters.Add(new OleDbParameter("@title", title));
cmd.Parameters.Add(new OleDbParameter("@content", content));
cmd.Parameters.Add(new OleDbParameter("@editer", editer));
cmd.Parameters.Add(new OleDbParameter("@date", date));
--------------------编程问答-------------------- title 字段名不能用 建议改名
public static void news_add(string title, string content, string editer, string shijian)
{
OleDbConnection conn = xwndb.con();
string sql = "insert into news(title,[content],editer,[date]) values(@title,@content,@editer,@date)";
OleDbCommand cmd = new OleDbCommand(sql,conn);
cmd.Parameters.Add(new OleDbParameter("@title", title));
cmd.Parameters.Add(new OleDbParameter("@content", content));
cmd.Parameters.Add(new OleDbParameter("@editer", editer));
cmd.Parameters.Add(new OleDbParameter("@date", date));
cmd.ExecuteNonQuery();
}
--------------------编程问答-------------------- 放管理器里看看 --------------------编程问答-------------------- 拿存储过程!
小心注入!
补充:.NET技术 , ASP.NET