Vb.net 组合框“上显示日期转换错误”;无法强制转换类型为';System.String';输入';System.IFormatProvider'&引用;

Vb.net 组合框“上显示日期转换错误”;无法强制转换类型为';System.String';输入';System.IFormatProvider'&引用;,vb.net,Vb.net,我在vb.net中使用一个与SQL 2008连接的组合框。此组合框以“2019-08-02”格式从SQL表中检索“日期”值。但现在我想在MsgBox上显示为“2019年8月2日”。但我犯了这个错误。 无法将类型为“System.String”的对象强制转换为类型为System.IFormatProvider的对象 我尝试使用以下代码转换组合框单击事件的日期格式: MsgBox(Trim(ComboDate.Text.ToString(“dd-MMMM-yyyy”)) 我预计2019-08-02的

我在vb.net中使用一个与SQL 2008连接的组合框。此组合框以“2019-08-02”格式从SQL表中检索“日期”值。但现在我想在MsgBox上显示为“2019年8月2日”。但我犯了这个错误。 无法将类型为“System.String”的对象强制转换为类型为System.IFormatProvider的对象

我尝试使用以下代码转换组合框单击事件的日期格式:

MsgBox(Trim(ComboDate.Text.ToString(“dd-MMMM-yyyy”))


我预计2019-08-02的输出为2019年8月2日,但它在“dd-MMMM-yyyy”上显示“绿线警告”,并在运行时显示错误。

您必须将字符串解析为日期并返回到字符串:

Dim fromDateStr as String = "2029-08-02"
Dim asDateTime as DateTime = DateTime.ParseExact(fromDateStr, "yyyy-MM-did", CultureInfo.InvariantCulture)
Dim toDateStr = asDateTime.ToString("dd-MMM-2019")
运行查询时,让数据库将日期格式化为字符串可能更简单。SQL server的现代版本支持格式化功能(您确实应该升级数据库):

老一点的我们必须破解它:

select replace(convert(varchar, getdate(), 106), ' ', '-') as datestr

希望您已将日期存储为日期,而不是字符串

我使用此代码,
select replace(convert(varchar, getdate(), 106), ' ', '-') as datestr