2017-04-12 20 views
1

データベースから私のウィンドウフォームにレコード(Gender)をロードしようとしています。フォームのロード時に自動的にロードされ、IDを取得しているだけなので、ジェンダー名ではなくデータベースから、どうすればいいですか?以下 は、私はあなたがあなただけのデータテーブル定義を検査することを行うことができますが、各行が含まれているかどうか確認するために、デバッグのためにそれを中に入れない限り、あなたのforeachループは、本質的に、何もしていないDB内のレコードをウィンドウformCに読み込む方法

private void Form1_Load(object sender, EventArgs e) 
{ 
    Load_Gender(); 
} 

public void Load_Gender() 
{ 
    try 
    { 
     string connectionString = @"Data Source=localhost;" + 
     "Initial Catalog=DemoDb;Integrated Security=true; User Instance=False"; 

     SqlConnection connection = new lConnection(connectionString); 
     SqlCommand command = new SqlCommand(); 
     command.Connection = connection; 

     command.CommandText = "SELECT * FROM Gender"; 
     SqlDataAdapter sl = new SqlDataAdapter(command); 

     DataSet ds = new DataSet(); 
     sl.Fill(ds, "Table"); 

     DataTable dt = ds.Tables["Table"]; 

     foreach (DataRow row in dt.Rows) 
     { 
      string id = row["Id"].ToString(); 
      string genderName = row["GenderName"].ToString(); 
     } 

     // Loading RECORDS to comboBox 
     for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
     { 
      comboBoxGender.Items.Add(ds.Tables[0].Rows[i][0].ToString()); 
     } 
    } 
    catch() 
    { 
    } 
} 
+0

これを理解するには、表DDLを表示する必要があります。 –

+0

'Rows [i] [0]'は* Id *を含む最初の列です - 2行目から* GenderName *を得るには 'Rows [i] [1]'に変更してください。 – Filburt

+0

comboBoxGender.Items.Add(ds.Tables [0] .Rows [i] .ToString());を使用しようとしています。 –

答えて

2

でそれをコード化されたコードスニペットですメモリ。

comboBoxGender.Items.Add(ds.Tables[0].Rows[i][0].ToString()); 

このコードはIdだけを取得するため、行[i] [0]は0が最初の列です。

行[i] [1]は性別の名前です。

関連する問題