转换日期和/或从字符串vb.net转换时间时失败



似乎找不到其他转换方式:

sql = "insert into Attendance values('" & Label1.Text & "','" & Button1.Text & "','" & Date.Today & "','" & TimeOfDay & "','null' )

Label1.Text是来自员工数据库的EmpIDbutton1.text是状态,是时间或超时的时间(备注)

SQL Server出勤管理中的代码是:

create table Attendance
(
 EmpID varchar(25) foreign key references Employee(EmpID),
 remarks varchar (25) primary key not null,
 checkdate date,
 tin time,
 tout time,
)

这是编写/运行数据库查询的可怕方法。基本上,发生的事情是,当SQL字符串组装时,您的日期值正在通过Visual Basic转换为字符串表示,但是SQL-Server无法将生成的字符串变成日期

幸运的是,它不必必须,您应该专门编写查询,以便它不必

看起来应该更像:

Dim sqlC as New SqlCommand("INSERT INTO attendance VALUES(@emp, @rem, @dat, @tin, null)", myConnectionStringVariable)
sqlC.Parameters.AddWithValue("emp", Label1.Text)
sqlC.Parameters.AddWithValue("rem", Button1.Text)
sqlC.Parameters.AddWithValue("dat", Date.Today)
sqlC.Parameters.AddWithValue("tin", DateTime.Now)

请至少查找有关参数化查询的一些教程。再也没有(永远不会)编写一个SQL,其中您要在SQL中包含的值,从某些UI组件中包含在SQL命令字符串

中。

更好的是,停止在按钮单击事件处理程序中编写SQL代码,然后使用ORM库(数据集,实体框架,NHIBERNATE等)

您的代码是一种巨大的安全风险,并且是批发的模式,可以完全避免

相关内容

  • 没有找到相关文章

最新更新