我编写了一段代码,它连接到SQL Server以从数据库中检索一些数据。我需要的一种类型的数据是存储日期。这工作正常,它连接并检索我想要的所有数据,但是当我尝试使用从SQL获取的检索日期创建DateTime
时,它给了我一个索引超出范围的例外。
以下是代码:
//sDate contains 14/11/2014 so dateArr[0] contains 14, dateArr[1] contains 11 and dateArr[2] contains 2014
for(int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
{
if(dataSet.Tables[0].Rows[i][9] != DBNull.Value)
{
String[] sDateAndTime = dataSet.Tables[0].Rows[i][9].ToString().Split(' ');
String sDate = sDateAndTime[0];
String[] dateArr = sDate.Split('/');
DateTime date = new DateTime(Convert.ToInt32(dateArr[3]), Convert.ToInt32(dateArr[2]), Convert.ToInt32(dateArr[1]));
Console.WriteLine(dateArr[0] + " " + dateArr[1] + " " + dateArr[2]);
}
}
奇怪的是,错误只出现在DateTime date = new DateTime(Convert.ToInt32(dateArr[3]), Convert.ToInt32(dateArr[2]), Convert.ToInt32(dateArr[1]));
如果我评论那条线,那就完全正常了。有人可以让我知道我做错了什么吗?我尝试了各种方法,包括使用DateTime.ParseExact
,但它仍然无效(给出不同的错误)。
答案 0 :(得分:0)
数组索引基于0。试试这个:
DateTime date = new DateTime(Convert.ToInt32(dateArr[2]), Convert.ToInt32(dateArr[1]), Convert.ToInt32(dateArr[0]));