借我一双慧眼,看看vb.net中sql日期插入语句什么问题???????????????????我想在日期中插入一对时间,分别为
借我一双慧眼,看看vb.net中sql日期插入语句什么问题???????????????????
我想在日期中插入一对时间,分别为生产日期,和失效日期,借用DateTimePicker控件设置,相应的数据库中的字段均为Datetime类型,以下为sql语句
VB.NET codeinsertSql = "insert into drug values('" & TextBox1.Text & "','" & ComboBox1.Text & "','" & ComboBox2.Text & "','" & ComboBox4.Text & "','" & ComboBox5.Text & "'," & Val(TextBox2.Text) & ",0,0," + DateTimePicker2.Value.ToShortDateString() + "," + DateTimePicker1.Value.ToShortDateString() + ",'" & ComboBox3.Text & "')"
问题来了,插入数据库时,两个日期不管设置多少,结果均为1900年的,如下图
各位看官,其他部分插入正常,只用帮忙看看两个DateTimePicker处,即可!
[解决办法]你最好指定字段名
insert into xxx(a,b,c) values(va,vb,vc)
你把insertSql 打印出来,放到数据库中执行一下
[解决办法][解决办法]不要滥用 TextBox1.Text这种,最起码的“sql注入”还是要知道的。既然你对字段名用单引号括起来,那么就要将Text中的单引号最一次转换(去查你的数据库的编程手册中要求的“当字段名中有单引号时怎样转义”)。
提交日期也要根据数据库的格式的要求,不是随便用.net程序的格式去提交。例如可能需要写
C# code ",0,0,'" + DateTimePicker2.Value.ToString("yyyy-MM-dd") + "',"