【发布时间】:2015-05-07 13:46:27
【问题描述】:
我有一个名为 value 的字符串 1899-12-30 01:30:00
我想将 01:30 变成一个单独的字符串,我尝试使用子字符串,但它一直给我一个错误,即 startindex 不能小于零,有人能告诉我我做错了什么吗?
using (OleDbDataAdapter oda = new OleDbDataAdapter("SELECT * FROM [" + sheet1 + "]", excel_con))
{
oda.Fill(dtExcelData);
}
excel_con.Close();
if (dtExcelData.Rows.Count > 0)
{
foreach (DataRow rw in dtExcelData.Rows)
{
//Creates StaffID
rw["StaffID"] = "00" + rw["Host Key of Staff"].ToString();
//Get duration out of DateTime
string Value = rw["Taught Periods Distinct as duration"].ToString();
string Duration = Value.Substring(Value.Length - 10, 5);
rw["Taught Periods Distinct as duration"] = Duration.ToString();
}
}
调试它说:
持续时间 = "01:30" 类型字符串
值 = "30/12/1989 01:30:00" 类型字符串
Value.Length = 19 类型 int
rw["Taught period as distinct as duration"] = "30/12/1989 01:30:00" Type object {string}
【问题讨论】:
-
你确定
Value是什么。该错误表明它的长度小于 10。 -
你确定吗,值包含
1899-12-30 01:30:00? -
你确定 Value 有那个值吗?
-
rw["Taught Periods Distinct as duration"]不是DateTime吗?也许您可以将其转换为DateTime并完成它?而且,这个消息非常明显 -Value.Length - 10必须加起来小于零 -Value似乎不包含您认为它包含的字符串。 -
什么是
rw["..."]?你确定Value的值是1899-12-30 01:30:00吗?你能显示那个代码吗?