2014-10-07 26 views
0

我在SQL Server數據庫中有一個名爲「course」的表,其中包含60個課程。如何在TextBox中顯示ComboBox中的值?

該表包含兩列:COURSE_ID (PK), COURSE_NAME

我得到使用存儲過程從數據庫中的所有課程:

create PROC [dbo].[GET_ALL_COURSES] 
AS 
SELECT * FROM COURSE 

和填充ComboBox這樣的:

public FORM_CRS() 
{ 
    InitializeComponent(); 

    CMB_COURSE.DataSource = CRS.GET_ALL_COURSES(); 
    CMB_COURSE.DisplayMember = "COURSE_NAME"; 
    CMB_COURSE.ValueMember = "COURSE_ID"; 
} 

當我點擊ComboBox中的課程我想在中顯示該課程的,但我不知道如何。

回答

1

創建您的組合框,如onSelectedIndexChanged事件..

void cmbCourse_onSelectedIndexChanged(object sender,EventArgs e) { 
yourTextBoxName.Text=CMB_COURSE.SelectedItem.ToString();} 
+0

太感謝你了:) ..它由真實事件SelectedValueChanged解決 – 2014-10-07 23:12:45

0
CMB.Click(object sender, EventArgs e) //click, changedvalue or something else what you want - change it for your neccesity 
{ 
    txt.Text = ((ComboBoxItem)CMB_COURSE.SelectedItem).Content.ToString(); 
    //or, i can't test it now, well do it and edit this answer 
    txt.Text = CMB_COURSE.SelectedValue.ToString(); 
    //or: 
    DataRowView row = (DataRowView)CMB_COURSE.SelectedItem; 
    if (row != null) 
    { 
     txt.Text = row[0] + " " + row[1]; 
    } 
} 

最後的解決方案的從這裏: https://stackoverflow.com/a/8518930/3810460

+0

謝謝老兄..它由真實事件SelectedValueChanged解決 – 2014-10-07 23:11:23

1

訂閱SelectedValueChanged事件填充你的ComboBox後:

CMB_COURSE.DataSource = CRS.GET_ALL_COURSES(); 
CMB_COURSE.DisplayMember = "COURSE_NAME"; 
CMB_COURSE.ValueMember = "COURSE_ID"; 

CMB_COURSE.SelectedValueChanged += (s, e) 
    => textBox1.Text = CMB_COURSE.SelectedValue.ToString(); 

當您的ComboBox中的選擇更改時,您的TextBox將顯示當前值COURSE_ID的值。

+0

非常感謝你:) – 2014-10-07 23:10:09

0

首先,我認爲你應該檢查這個link作爲參考。

接下來,認爲這個代碼段相匹配,你在找什麼:

private List<Course> Courses = new List<Course>(); 

    public Form1() 
    { 
     InitializeComponent(); 

     Courses.Add(new Course("Computer Science",1)); 
     Courses.Add(new Course("English", 2)); 
     Courses.Add(new Course("Art", 3)); 
     Courses.Add(new Course("Biology", 4)); 
     Courses.Add(new Course("Philosophy", 5)); 
     Courses.Add(new Course("Humanities", 6)); 

     CourseCB.DataSource = Courses; 
     CourseCB.SelectedText = Courses.ElementAt(0).CourseName; 
     CourseCB.DisplayMember = "CourseName"; 
     CourseCB.ValueMember = "CourseID"; 
    } 

    private void OnValueChanged(object sender, EventArgs e) 
    { 
     if (CourseCB.SelectedIndex != -1) 
     { 
      CourseIDTB.Text = CourseCB.SelectedValue.ToString(); 
     } 
    } 

    public class Course 
    { 
     private string myCourseName; 
     private int myCourseID; 

     public string CourseName 
     { 
      get { return this.myCourseName; } 
      set { this.myCourseName = value; } 
     } 

     public int CourseID 
     { 
      get { return this.myCourseID; } 
      set { this.myCourseID = value; } 
     } 

     public Course(string name, int ID) 
     { 
      this.CourseName = name; 
      this.CourseID = ID; 
     } 

    } 

你有正確的格式,但你需要從SQL提供一個對象的屬性值不正確地使用它引用DisplayMember和ValueMember值。

我建議您執行查詢,然後將值插入Course對象中,然後您就可以使用此代碼。

+0

謝謝老兄..它由真實事件SelectedValueChanged解決。 – 2014-10-07 23:17:23

相關問題