IndexOutofRangeException Winform

时间:2012-01-21 15:36:38

标签: winforms string split outofrangeexception

我的代码出了什么问题?

  string birthdate = ((DataRowView)comboBox1.SelectedItem).Row["birthdate"].ToString(); //pulled the data into the database ()

string[] split = birthdate.Split('/'); //split the Date

我想将它们放在文本框中,所以我想这样做:

textbox1.Text = split[0]; //correct, gets the 1st word the (Day)
    textbox2.Text = split[1]; //incorrect, outofrange exception (Month)
    textbox3.Text = split[2]; //incorrect, outforange exception (Year)

注意:格式为日/月(单词)/年==> 1 /月/ 2012

有人可以帮助我获取这些值并将它们逐个放在文本框中吗?

1 个答案:

答案 0 :(得分:2)

这个问题确实是通过将日期存储在varchar类型的列中开始的。只需要一台文化设置错误的机器就会损坏数据库表,因此所有尝试读取它的机器都会爆炸。解决实际问题,修复表格。

Anyhoo,你需要改进你的代码,以便dbase管理员有机会修复损坏。抛出提供足够信息的异常。类似的东西:

string[] split = birthdate.Split('/');
if (split.Length != 3) {
    throw new Exception("Invalid date string for table entry " + row["primarykey"].ToString());
}