Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Lấy giá trị của combobox gán cho textbox

  1. #1
    Ngày gia nhập
    07 2011
    Bài viết
    44

    Mặc định Lấy giá trị của combobox gán cho textbox

    Mình có vấn đề muốn hỏi các bạn là:
    + mình có table Nganh(manganh,tennganh)

    Mình muốn khi load tableNganh lên combobox (hiển thị mã ngành ở combobox) -> chọn mã ngành sẽ hiển thị tên ngànhtextbox.

    Các bạn giúp mình với(không đúng ở đâu mong BQT và các bạn sửa dùm)

  2. #2
    Ngày gia nhập
    07 2011
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi t2t2t Xem bài viết
    Mình có vấn đề muốn hỏi các bạn là:
    + mình có table Nganh(manganh,tennganh)

    Mình muốn khi load tableNganh lên combobox (hiển thị mã ngành ở combobox) -> chọn mã ngành sẽ hiển thị tên ngànhtextbox.

    Các bạn giúp mình với(không đúng ở đâu mong BQT và các bạn sửa dùm)

    Đầu Tiên bạn add cái MaNganh vào combobox -> Kế đến muốn hiển thị Tên ngành ứng với MaNganh thì bạn lấy cái giá trị MaNganh mà bạn chọn -> dùng Select trả về cái Tên ngành tương ứng .
    ý tưởng của mình là vậy có gì mọi người góp ý

  3. #3
    Ngày gia nhập
    08 2009
    Nơi ở
    TP Cần Thơ - Lộ 91B
    Bài viết
    214

    - Mình hướng dẫn cho bạn 2 cách. Vì bạn không nói rõ kiểu dử liệu của các cột trong bảng Nganh là gì nên ở đây mình mặc định là kiểu String hết ( (n)varchar )

    Cach 1 : Khi người dùng chọn 1 Item mã ngành trong Combobox thì mình truy vấn để lấy tên ngành
    Code:
           private void combobox_ItemSelected(object sender, EvenArgs e){
                 SqlCommand sql = new SqlCommand() ;
                 sql.Connection = [ biến kết nối với CSDL đã mở ] ;
                 sql.CommandText = "Select tennganh from Nganh where manganh = '" + combobox.SelectedItem.ToString() + "' ";
                 SqlDataReader reader = ExcuteReader();
                 if(reader.Read()) textBox.Text = reader.GetString(0) ;
                 reader.Close();
           }
    Cách 2 (pro hơn) : Bạn tạo 1 đối tượng Nganh với các thuộc tính là các cột trong bảng Ngành của CSDL. Và Khi mở Form sẽ Load Tất cả các đối tượng Nganh vào combobox . Khi user chọn 1 đối tượng Ngành trong combobox thì chỉ việc xuất thuộc tính tên ngành của đối tượng được chọn ra thôi.

    //-- Ví dụ Code tạo Class ngành
    Code:
         public Class Nganh{
                 public string maNganh, tenNganh;
                 public Nganh(){ 
                         //-- làm gì đó trong hàm dựng là tùy bạn;
                 }
                 //-- Tái định nghĩa lại hàm này để khi Add vào Combobox sẽ mặc định hiển thị mã ngành
                 public override string ToString(){
                         return this.maNganh;
                 }
    
                 public static Nganh[] getAll_DataFromDB(){
                         SqlCommand sql = new SqlCommand("Select *from Nganh", [ biến kết nối với CSDL đã mở ]);        
                         SqlDataReader reader = ExcuteReader();
                         List<Nganh> list = new List<Nganh>();
                         while(reader.Read()){
                                Nganh nganh = new Nganh();
                                nganh.maNganh = reader.GetString(0);
                                nganh.tenNganh = reader.GetString(1);
                                list.Add(nganh);
                         } 
                         reader.Close();
                         return list.ToArray();
                 }
          }
    //-- Code sử dụng ở Form
    Code:
               private void FormLoad(object sender, EvenArgs e){
                        //-- Lấy thông tin các đối tượng Ngành
                        combobox.AddRange( Nganh.getAll_DataFromDB() );
               }
    
               private void combobox_ItemSelected(object sender, EvenArgs e){
                        Nganh nganh = combobox.SelectedItem as Nganh ;
                        textbox.Text = nganh.tenNganh ;        
               }
    //-- Khuyến cáo là nên dùng cách 2. Với cách này bạn sẽ quản lý Code tốt hơn
    Đã được chỉnh sửa lần cuối bởi latuine : 25-07-2011 lúc 03:45 PM.

    PHÁT TRIỂN PHẦN MỀM HỖ TRỢ CÔNG VIỆC
    ỨNG DỤNG QUẢN LÝ CHO DOANH NGHIỆP VỪA VÀ NHỎ

    (0969.867.490 - ltnghia.wins@gmail.com)

  4. #4
    Ngày gia nhập
    07 2011
    Bài viết
    44

    Code:
     class connectData
        {
            private SqlConnection conn;
            private SqlDataAdapter dataAp;
            private DataTable dataTable;
            //Khoi tao
            public connectData()
            {
                Connect();
            }
            // Ket noi
            public void Connect()
            {
                string strConnect = @"Data Source=SUZUKE-PC\SUZUKE;Initial Catalog=QLTC;Integrated Security=True";
                try
                {
                    conn = new SqlConnection(strConnect);
                    conn.Open();
                    conn.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Errors: " + ex.Message);
                }
            }
            //Lay du lieu do vao dataTable
            public DataTable getDataTable(string sql)
            {
                //tao dataAdapter thuc hien cau lenh truy van
                dataAp = new SqlDataAdapter(sql, conn);
                //Do du lieu vao datatable
                dataTable = new DataTable();
                dataAp.Fill(dataTable);
                return dataTable;
            }
    
            //Ham thuc hien cau truy van
            public bool executeQuery(string sql)
            {
                int num = 0;
                try
                {
                    if (conn.State == ConnectionState.Closed)
                    {
                        conn.Open();
                        SqlCommand cmd = new SqlCommand(sql, conn);
                        num = cmd.ExecuteNonQuery();
                    }
                    if (conn.State == ConnectionState.Open)
                        conn.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Loi: " + ex.Message);
                }
                if (num > 0)
                    return true;
                return false;
    
            }
    
           
        }
    Mình học viết theo mô hình 3 lớp, mình đag học z bạn có thể hướng dẫn mình theo code như trên không!!! lính mới tự học như đừng chê!!!!
    Mình đã lòad table nganh lên cobobox rồi

  5. #5
    Ngày gia nhập
    08 2009
    Nơi ở
    TP Cần Thơ - Lộ 91B
    Bài viết
    214

    Trích dẫn Nguyên bản được gửi bởi t2t2t Xem bài viết
    Code:
     class connectData
        {
            private SqlConnection conn;
            private SqlDataAdapter dataAp;
            private DataTable dataTable;
            //Khoi tao
            public connectData()
            {
                Connect();
            }
            // Ket noi
            public void Connect()
            {
                string strConnect = @"Data Source=SUZUKE-PC\SUZUKE;Initial Catalog=QLTC;Integrated Security=True";
                try
                {
                    conn = new SqlConnection(strConnect);
                    conn.Open();
                    conn.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Errors: " + ex.Message);
                }
            }
            //Lay du lieu do vao dataTable
            public DataTable getDataTable(string sql)
            {
                //tao dataAdapter thuc hien cau lenh truy van
                dataAp = new SqlDataAdapter(sql, conn);
                //Do du lieu vao datatable
                dataTable = new DataTable();
                dataAp.Fill(dataTable);
                return dataTable;
            }
    
            //Ham thuc hien cau truy van
            public bool executeQuery(string sql)
            {
                int num = 0;
                try
                {
                    if (conn.State == ConnectionState.Closed)
                    {
                        conn.Open();
                        SqlCommand cmd = new SqlCommand(sql, conn);
                        num = cmd.ExecuteNonQuery();
                    }
                    if (conn.State == ConnectionState.Open)
                        conn.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Loi: " + ex.Message);
                }
                if (num > 0)
                    return true;
                return false;
    
            }
           
        }
    Mình học viết theo mô hình 3 lớp, mình đag học z bạn có thể hướng dẫn mình theo code như trên không!!! lính mới tự học như đừng chê!!!!
    Mình đã lòad table nganh lên cobobox rồi
    - Có thể bạn đã bị mất căn bản về Hướng Đối Tượng hoặc C# WinForm.
    - Bạn phải nghiên cứu thêm ở các giáo trình
    - Nên học lại căn bản trước khi sử dụng các đoạn Code phức tạp

    //-- Code ví dụ minh họa
    Code:
           connectData connect = new connectData();
           DataTable table = connect.getDataTable(Select *from Nganh where maNganh = '"+[dữ liệu chọn ở combobox] + " ' " )
           textBox.Text = table.CreateDataReader().GetString(1);

    PHÁT TRIỂN PHẦN MỀM HỖ TRỢ CÔNG VIỆC
    ỨNG DỤNG QUẢN LÝ CHO DOANH NGHIỆP VỪA VÀ NHỎ

    (0969.867.490 - ltnghia.wins@gmail.com)

  6. #6
    Ngày gia nhập
    12 2010
    Bài viết
    683

    Mặc định Lấy giá trị của combobox gán cho textbox

    Mới học mà chơi 3 lớp rồi ah!!!

    Làm như bạn laitune là oki cũng có thể load lên datagrid hoặc combobox khác rồi làm phép gán qua

    Textbox cũng dc!!!

    Bingding cũng dc!

  7. #7
    Ngày gia nhập
    07 2011
    Bài viết
    44

    Trích dẫn Nguyên bản được gửi bởi cchangkhongayngo Xem bài viết
    Mới học mà chơi 3 lớp rồi ah!!!

    Làm như bạn laitune là oki cũng có thể load lên datagrid hoặc combobox khác rồi làm phép gán qua

    Textbox cũng dc!!!

    Bingding cũng dc!
    Mình binding rồi hahahah!!!
    Như có 1 vấn đề.
    Vấn đề của mình là
    +Mình load tableNganh lên combobox(hiển thị mã ngành). Khi mình thêm 1 mẫu tin mới thì nó hiển thị đúng ở datagrid.
    +Nếu mình load tableNganh lên combobox(hiển thị tên ngành) thì khi thêm 1 mẫu tin nó hiển thị sai mã ngành ở datagrid.

  8. #8
    Ngày gia nhập
    12 2010
    Bài viết
    683

    Rối rắm quá đi nà!

    Rõ ràng ra xem nào!???

  9. #9
    Ngày gia nhập
    07 2011
    Bài viết
    44

    Trích dẫn Nguyên bản được gửi bởi cchangkhongayngo Xem bài viết
    Rối rắm quá đi nà!

    Rõ ràng ra xem nào!???
    Như vầy!!!
    tableNganh(MaNganh, TenNganh)
    -Có 1 combobox(mình đã load lên rồi) -> khi mình chọn mã ngành -> thì hiển thị TenNganh ở textbox.
    Code:
    //Lay danh sach nghanh
            public DataTable layDSNganh()
            {
                string sql = "SELECT *FROM Nganh";
                return connData.getDataTable(sql);
            }
    
    
    
    ////////////////////
                //load len cboMaNganh
                cboMaNganh.DataSource = nganhBus.layDSNganh();
                cboMaNganh.DisplayMember = "MaNganh";
                cboMaNganh.ValueMember = "MaNganh";

  10. #10
    Ngày gia nhập
    04 2011
    Nơi ở
    Hà Nội
    Bài viết
    221

    thấy topic này nhiều lời giải, cũng xin góp 1 cái nữa ngắn, đơn giản như này:

    Code:
    private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
            {
                if (comboBox1.SelectedValue == null)
                {
                    return;
                }
                string strAbc = comboBox1.SelectedValue.ToString();
                textBox1.Text = strAbc;
            }
    I love C#

Các đề tài tương tự

  1. Lấy textbox theo combobox
    Gửi bởi lexuanphongna trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 11
    Bài viết cuối: 06-11-2012, 09:57 AM
  2. ADO.NET Xác định loại textbox hay combobox C# nào trong C#?
    Gửi bởi doloihp89 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 19-02-2012, 10:47 PM
  3. Làm sao phân biệt được người dùng chọn Textbox hay Combobox
    Gửi bởi aydada trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 08-11-2010, 08:41 AM
  4. sử dụng 1 combobox, gán các giá trị vô textbox
    Gửi bởi chippk trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 10-07-2010, 09:53 AM
  5. Thêm value vào combobox từ Textbox trong C#?
    Gửi bởi ninja_duck trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 14-06-2010, 01:36 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn