2012-01-21 5 views
0

私のコードに何の問題がありますか?私はテキストボックスに入れたいIndexOutofRangeException Winform

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/1月/ 2012

誰かが値を取得してテキストボックスに1つずつ入れることができますか?

+2

「string」の誕生日には何が含まれていますか?それは非データバインドコンボボックスを使用して私のために働いています。 –

+0

生年月日は私のデータベースのVarcharです。そうです!なぜ私はエラーが発生しているのか分かりません。 T_T –

答えて

2

この問題は、実際にはvarchar型の列に日付を格納することによって実際に開始されました。データベーステーブルを壊すように間違って設定されたカルチャーを持つマシンは1台しかないので、それを読み込もうとするすべてのマシンが爆発します。実際の問題を解決し、テーブルを修正してください。

あなたのコードを改善して、dbase管理者が被害を修復するための戦闘機会を持つようにしてください。十分な情報を与える例外を投げる。次のようなもの:

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

さん、それはvarchar型のデータベースで値を分割できないということですか?たとえば、データベースに括弧で区切られた名前が連結されていますか?上記の手順で分割することはできませんか? –

+0

ありがとうございました!あなたの答えは私に問題を解決する方法を教えてくれました:)) –