Mysql 更改系统时间后,datetime的自定义格式不起作用

Mysql 更改系统时间后,datetime的自定义格式不起作用,mysql,vb.net,Mysql,Vb.net,我试图使用DateTimePicker中的日期约束将一些SQL查询输出到DataGridView 我在form load sub期间以及在.vb[design]文件的“属性”菜单中设置自定义日期格式 但是,当我运行应用程序时,它会自动将DateTimePicker值从我的自定义格式yy MM dd切换到Windows系统格式,该格式当前设置为m/dd/yy或我在Windows中选择的任何格式。这会导致问题,因为当我将windows日期时间格式切换为yyyy-MM-dd时,应用程序会工作,但是,如

我试图使用DateTimePicker中的日期约束将一些SQL查询输出到DataGridView

我在form load sub期间以及在.vb[design]文件的“属性”菜单中设置自定义日期格式

但是,当我运行应用程序时,它会自动将DateTimePicker值从我的自定义格式yy MM dd切换到Windows系统格式,该格式当前设置为m/dd/yy或我在Windows中选择的任何格式。这会导致问题,因为当我将windows日期时间格式切换为yyyy-MM-dd时,应用程序会工作,但是,如果最终用户使用m/dd/yy格式,我的应用程序将无法从SQL server获取数据

SQL Server格式为yyyy-MM-dd

私有子导航\u LoadSender作为System.Object,e作为System.EventArgs处理MyBase.Load DTPTansAct.Value=Today.AddDays-1 DTPTransAct.Format=DateTimePickPerformat.Custom DTPTransAct.CustomFormat=yyyy-MM-dd 端接头 私有子BtnTransActDL\u单击发件人作为对象,e作为事件args处理BtnTransActDL。单击 Dim记录计数=0 Dim异常= Dim DLCmd作为新的MySqlCommand Dim DLConn作为新的MySQL连接 DLConn.ConnectionString=ConnectionString.text Dim DLDA作为新的MySqlDataAdapter Dim DLDT作为新数据表 将bsource设置为新BindingSource Dim SQLString As String=从表中选择*,其中名称“%$TXTransact.Text&%”和transactiondate介于“&DTPTransAct.Text&”和“&DTPTransAct.Text&”之间; 尝试 DLConn,关闭 DLConn.打开 DLCmd=新的MySqlCommandSQLString,DLConn DLDA.SelectCommand=DLCmd DLDA.FillDLDT bsource.DataSource=DLDT DGVTransAct.DataSource=b源 DLDA.UpdateDLDT 特例 异常=执行查询错误:&vbNewLine&ex.消息 最后 DLConn,关闭 Dim RecordCount1作为字符串=DLDT.Select.Length TextBox16.Text=RecordCount1.ToString+找到记录! 结束尝试 端接头
一定有什么东西改变了你没有在代码中显示的格式。但无论如何,您不应该使用DTPTransAct.Text。改用DTPTransAct.Value.ToStringyyyy-MM-dd。另外,考虑使用以防止SQL注入。使用参数的另一个优点是,您不必担心日期格式,因为您将日期传递为日期,而不是字符串。谢谢,我发现在某些行中,我使用DTPtTrast.Text代替DTPTraceTalk.ValueToStRyyYyY-MM-DD。