我创建了一个简单的表单来调用数据库中的数据并且它运行良好。问题是它在某些计算机上不起作用。我已经尝试在5台不同的计算机上运行它,其中只有3台执行它应该是。其他2台计算机显示弹出未处理的异常错误,即“字符串未被识别为有效的日期时间”。当我点击弹出窗口中的“详细信息”按钮时,它显示错误在这行代码中: -
SQLConnection.Open()
cmd = New MySqlCommand("SELECT * FROM jobimport WHERE no =('" & jobid & "')", SQLConnection)
read = cmd.ExecuteReader
If read.HasRows = False Then
' MessageBox.Show("No record found", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
Do While read.Read
date1 = read("date")
jobno = read("jobno")
marking = read("marking")
consignee = read("consignee")
hblno = read("hblno")
blno = read("blno")
eta = read("eta")
vessel = read("vessel")
description = read("description")
Loop
DateTimePicker1.Value = DateTime.Parse(date1) ' <--- Error on this line
TextBox1.Text = jobno
TextBox2.Text = marking
TextBox3.Text = consignee
TextBox13.Text = hblno
TextBox4.Text = blno
TextBox6.Text = vessel
TextBox7.Text = description
End If
SQLConnection.Close()
SQLConnection.Dispose()
上面的所有变量都是字符串数据类型。
我尝试通过这样做来解决这个问题
DateTimePicker1.Text = date1
和这个
DateTimePicker1.Value = Convert.ToDateTime(date1)
但它仍然在这两台计算机上发出相同的错误,而其他3台计算机运行良好而没有问题。有什么想法吗?
答案 0 :(得分:2)
尝试更改此行:
DateTimePicker1.Value = DateTime.Parse(date1)
使用ParseExact提供相关的CultureInfo作为第三个参数。例如:
DateTimePicker1.Value = DateTime.ParseExact(date1, "d/m/yyyy", CultureInfo.InvariantCulture)
使用ParseExact
,应用程序将使用提供的CultureInfo
解析您的日期字符串,无论其运行的计算机使用何种语言环境设置。