无法将类型 'System.DateTime' 的对象转换为类型 'System.String'。 C#
Unable to cast object of type 'System.DateTime' to type 'System.String'. c#
我正在尝试显示日期并将其恢复到 Labels = strings
,
但是我在行 list.Add((string)myReader["Date"]);
上遇到错误
这是我的代码:
con.Open();
myReader = cmdDB.ExecuteReader();
List<string> list = new List<string>();
while (myReader.Read())
{
list.Add((string)myReader["Date"]);
}
string[] strings = list.Select(x => x.ToString()).ToArray();
cartesianChart1.AxisX.Add(new Axis
{
Title = "Date",
Labels = strings
});
cartesianChart1.AxisY.Add(new Axis
{
Title = "Sales",
LabelFormatter = value => value.ToString()
});
有什么解决办法吗?谢谢! P.S。我正在使用 LiveCharts 和 MySQL.
你可以这样试试
list.Add(myReader["Date"].ToString());
如果需要,您还可以在 ToString(dd-MM-yyyy) using Custom Date and Time Format Strings
中对日期应用格式
做
list.Add(Convert.ToString(myReader["Date"]));
您的 Date
列似乎不是字符串而是日期时间列。
(string)myReader["Date"]
尝试将日期时间列显式类型转换为字符串,这是不可能的。但是 Convert.ToString
给出了你的值的字符串表示。
即使值为 null
,Convert.ToString(object value)
也会 return null
而不是像 .ToString()
.
那样抛出异常
使用
if (Convert.IsDBNull(columnValue))
{
return null;
}
return columnValue;
永远验证数据是否为 null 或空以及 return 一个值
注意:如果我们在数据库中有 DateTime 类型的列,在 asp.net core/Csharp application
中有字符串类型的列
我们可以在存储过程级别将 DateTime 转换为字符串,如
例如
date_format(ReferralDate, '%d/%m/%Y') as ReferralDate,
存储过程的完整示例
SELECT referralCostsID,
ClientID,
ReferralSource,
date_format(ReferralDate, '%d/%m/%Y') as ReferralDate,
AdCost,
Notes
FROM referralcostssetup
我正在尝试显示日期并将其恢复到 Labels = strings
,
但是我在行 list.Add((string)myReader["Date"]);
这是我的代码:
con.Open();
myReader = cmdDB.ExecuteReader();
List<string> list = new List<string>();
while (myReader.Read())
{
list.Add((string)myReader["Date"]);
}
string[] strings = list.Select(x => x.ToString()).ToArray();
cartesianChart1.AxisX.Add(new Axis
{
Title = "Date",
Labels = strings
});
cartesianChart1.AxisY.Add(new Axis
{
Title = "Sales",
LabelFormatter = value => value.ToString()
});
有什么解决办法吗?谢谢! P.S。我正在使用 LiveCharts 和 MySQL.
你可以这样试试
list.Add(myReader["Date"].ToString());
如果需要,您还可以在 ToString(dd-MM-yyyy) using Custom Date and Time Format Strings
中对日期应用格式做
list.Add(Convert.ToString(myReader["Date"]));
您的 Date
列似乎不是字符串而是日期时间列。
(string)myReader["Date"]
尝试将日期时间列显式类型转换为字符串,这是不可能的。但是 Convert.ToString
给出了你的值的字符串表示。
即使值为 null
,Convert.ToString(object value)
也会 return null
而不是像 .ToString()
.
使用
if (Convert.IsDBNull(columnValue))
{
return null;
}
return columnValue;
永远验证数据是否为 null 或空以及 return 一个值
注意:如果我们在数据库中有 DateTime 类型的列,在 asp.net core/Csharp application
中有字符串类型的列我们可以在存储过程级别将 DateTime 转换为字符串,如
例如
date_format(ReferralDate, '%d/%m/%Y') as ReferralDate,
存储过程的完整示例
SELECT referralCostsID,
ClientID,
ReferralSource,
date_format(ReferralDate, '%d/%m/%Y') as ReferralDate,
AdCost,
Notes
FROM referralcostssetup