2016-05-21 10 views
1

SQL Serverテーブル内の特定の列内のすべてのデータを使用して、以前のコンボボックスの値が選択されるまで、無効なコンボボックスを作成しようとしています。ComboBoxにSQL列の値を設定する

これは私がこれまでにしようとしているものです:任意およびすべての助けを事前に

private void cboManufacturor_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string manufacturor = this.cboManufacturor.SelectedItem.ToString(); 

    if (!cboModel.Enabled) 
    { 
     cboModel.Enabled = true; 
    } 

    using (SqlConnection myConnection = new SqlConnection(Program.conString)) 
    { 
     myConnection.Open(); 
     string queryString = "SELECT * FROM tblStock WHERE [email protected]"; 

     SqlCommand myCommand = new SqlCommand(queryString, myConnection); 
     myCommand.Parameters.AddWithValue("@Manufacturor", manufacturor); 

     SqlDataReader DR; 

     using (DR = myCommand.ExecuteReader()) 
     { 
      while (DR.Read()) 
      { 
       cboModel.Items.Add((string)DR["Model"]); 
      } 
     } 
    } 
} 

ありがとう!

ディーン

編集:申し訳ありませんが、私が実際に遭遇した問題が何であったか言うことを忘れてしまいました!元のComboBox(cboManufacturor)の値を選択すると、2番目のComboBox(cboModel)は有効になりますが、値は追加されません。

+1

あなたのコードにはどのような問題がありますか? –

+0

申し訳ありませんが、私は直面している問題が投稿を更新しました –

+1

クエリからデータを取得するかどうかを確認しますか? –

答えて

1

manufacturor変数は以下のとおりです。あなたがSelectedItemを使用しているため、「System.Data.DataRowView」は、SelectedItemは、コンボボックスのデータソースにバインドされたデータオブジェクトである、あなたが使用することができます。

string manufacturor = this.cboManufacturor.Text; 

またはDataRowViewにキャストのSelectedItem、その後、取得

DataRowView oDataRowView = this.cboManufacturor.SelectedItem as DataRowView; 
string manufacturor = string.Empty; 

if (oDataRowView != null) { 
    manufacturor = oDataRowView.Row["YourFieldName"] as string; 
} 
+0

私は以前にこれを試しましたが、私はブレークポイントでもう一度試しましたが、結果は上記と同じです。ありがとう! –

+1

'string manufacturor = this.cboManufacturor.Text;' –

+0

を試してみました!ありがとうございました!可能であれば、上記のコメントへの回答を更新し、私は答えとして受け入れます。可能であれば、あなたが知っていれば、その問題の情報を追加できますか?ちょうど私は将来について知っている!ありがとう! –

関連する問題