将日期值存储到MySQL数据库时出错
我已经尝试了几种类型的日期格式,但仍然无法正确使用。将日期值存储到MySQL数据库时出错
以下是这已经writen
Dim serverDate As String = Format(Now(), "DD-MM-YYYY")
strNew &= "INSERT INTO Staff ("
strNew &= "full_name"
strNew &= ", login_id"
strNew &= ", passwd"
strNew &= ", last_update"
strNew &= ") VALUES ("
strNew &= "'" & txt_Name.Text & "'"
strNew &= ", '" & txt_Login.Text & "'"
strNew &= ", '" & txt_Password.Text & "'"
strNew &= ", (STR_TO_DATE('" & serverDate & "', '%d-%m-%Y'))"
strNew &= ")"
任何想法,如果我错过了编码..帮助是非常赞赏..
编辑#1: 忘了在错误添加消息
“不正确的日期时间值:‘DD-09-YYYY’的功能STR_TO_DATE”
您正在使用硬编码 SQL字符串,所以你需要使用ÿ yyy-MM-dd格式日期。
Dim serverDate As String = DateTime.Now.ToString("yyyy-MM-dd")
strNew &= "INSERT INTO Staff ("
strNew &= "full_name"
strNew &= ", login_id"
strNew &= ", passwd"
strNew &= ", last_update"
strNew &= ") VALUES ("
strNew &= "'" & txt_Name.Text & "'"
strNew &= ", '" & txt_Login.Text & "'"
strNew &= ", '" & txt_Password.Text & "'"
strNew &= ", '" & serverDate & "'"
strNew &= ")
编辑:
@BlurrieBlue: 忘了在错误消息中添加 “不正确的日期时间值 : 'DD-09-YYYY' 的功能STR_TO_DATE”
是它是不正确的格式。它应该是
Format(Now(), "dd-MM-yyyy")
看看这个代码片断
cmd=new MySqlCommand()
cmd.Connection=cn
cmd.CommandText="INSERT INTO Staff (?full_name,?login_id,?passwd,?last_update)"
cmd.Parameters.Add("?full_name", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value =txt_Name.Text
cmd.Parameters.Add("?login_id", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value =txt_Login.Text
cmd.Parameters.Add("?passwd", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value =txt_Password.Text
cmd.Parameters.Add("?last_update", MySql.Data.MySqlClient.MySqlDbType.DateTime).Value =DateTime.Now
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()
题外话:不要使用hard-coded SQL字符串。使用参数化的sql语句。
我试图用存储过程来获得serverTime之前,但它有问题存储在数据库也.. – BlurrieBlue
我已经尝试给出的解决方案,但它仍然给我同样的错误信息..我需要导入任何库中? – BlurrieBlue
@BlurrieBlue:哪个提供你正在使用的API(.net连接?) – adatapost
为什么我的问题已经被否决了?.. TT_____TT 我真的出来的想法如何解决这个问题那么只有我将它张贴在这里.. – BlurrieBlue
你好,SQL注入攻击 –