借我一双慧眼,看看vb.net中sql日期插入语句什么问题???????????????????

时间:2022-07-26 13:58:41
我想在日期中插入一对时间,分别为生产日期,和失效日期,借用DateTimePicker控件设置,相应的数据库中的字段均为Datetime类型,以下为sql语句
insertSql = "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年的,如下图 借我一双慧眼,看看vb.net中sql日期插入语句什么问题???????????????????

各位看官,其他部分插入正常,只用帮忙看看两个DateTimePicker处,即可!

6 个解决方案

#1


你最好指定字段名
insert into xxx(a,b,c) values(va,vb,vc)
你把insertSql 打印出来,放到数据库中执行一下

#2


引用楼主  的回复:
我想在日期中插入一对时间,分别为生产日期,和失效日期,借用DateTimePicker控件设置,相应的数据库中的字段均为Datetime类型,以下为sql语句VB.NET code
insertSql = "insert into drug values('" & TextBox1.Text & "','" & ComboBox1.Text & "','" &am……

时间也当字符串处理啊,也应该加上单引号

#3


不要滥用 TextBox1.Text这种,最起码的“sql注入”还是要知道的。既然你对字段名用单引号括起来,那么就要将Text中的单引号最一次转换(去查你的数据库的编程手册中要求的“当字段名中有单引号时怎样转义”)。

提交日期也要根据数据库的格式的要求,不是随便用.net程序的格式去提交。例如可能需要写
 ",0,0,'" + DateTimePicker2.Value.ToString("yyyy-MM-dd") + "',"


不要使用 ToShortDateString 之类的因电脑操作系统设置参数随时变化的方法,要使用在不同语言操作系统、不同设置上都固定不变的写法。如果数据库要求表达成字符串,就要表达成字符串。

#4


使用参数传递方式实现的的数据插入与更新。

#5


引用 2 楼  的回复:
引用楼主  的回复:
我想在日期中插入一对时间,分别为生产日期,和失效日期,借用DateTimePicker控件设置,相应的数据库中的字段均为Datetime类型,以下为sql语句VB.NET code
insertSql = "insert into drug values('" & TextBox1.Text & "','" & Combo……
参考数据库的执行方法,并验证诸位的方法,此方法是正确的,其他的方法依然是年份不对问题,结贴

#6


感谢诸位的的不吝指导,可用分有限,还望见谅

#1


你最好指定字段名
insert into xxx(a,b,c) values(va,vb,vc)
你把insertSql 打印出来,放到数据库中执行一下

#2


引用楼主  的回复:
我想在日期中插入一对时间,分别为生产日期,和失效日期,借用DateTimePicker控件设置,相应的数据库中的字段均为Datetime类型,以下为sql语句VB.NET code
insertSql = "insert into drug values('" & TextBox1.Text & "','" & ComboBox1.Text & "','" &am……

时间也当字符串处理啊,也应该加上单引号

#3


不要滥用 TextBox1.Text这种,最起码的“sql注入”还是要知道的。既然你对字段名用单引号括起来,那么就要将Text中的单引号最一次转换(去查你的数据库的编程手册中要求的“当字段名中有单引号时怎样转义”)。

提交日期也要根据数据库的格式的要求,不是随便用.net程序的格式去提交。例如可能需要写
 ",0,0,'" + DateTimePicker2.Value.ToString("yyyy-MM-dd") + "',"


不要使用 ToShortDateString 之类的因电脑操作系统设置参数随时变化的方法,要使用在不同语言操作系统、不同设置上都固定不变的写法。如果数据库要求表达成字符串,就要表达成字符串。

#4


使用参数传递方式实现的的数据插入与更新。

#5


引用 2 楼  的回复:
引用楼主  的回复:
我想在日期中插入一对时间,分别为生产日期,和失效日期,借用DateTimePicker控件设置,相应的数据库中的字段均为Datetime类型,以下为sql语句VB.NET code
insertSql = "insert into drug values('" & TextBox1.Text & "','" & Combo……
参考数据库的执行方法,并验证诸位的方法,此方法是正确的,其他的方法依然是年份不对问题,结贴

#6


感谢诸位的的不吝指导,可用分有限,还望见谅