Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
News & Announcements
  • Top posters
 Mr.Pakapun (256)
 ddtan90 (178)
 tvduong (147)
 dthnam90 (137)
 minhquankq (101)
 arianbo (70)
 DoanhNhan (54)
 chicken (53)
 stormit (52)
 gentle_storm (47)

Share | 
 

 Lấy Giá Trị Vào Combobox

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Lấy Giá Trị Vào Combobox   Thu Jun 09, 2011 7:22 pm

các pro cho mình hỏi cách giải quyết vấn đề gặp lỗi của mình đó là khi lấy giá trị vào combobox được lọc từ một bản tham chiếu. Vấn đề như sau :
Khi mình lấy dữ liệu vào combobox nhưng nó chỉ hiện thị cho xem mà không cho phép chọn. Giống như nó mặc định sẵn một giá trị mà không cho phép chọn giá trị khác( mình dùng vb.net)
đây là đoạn code trong combobox :
txtmsdn.DataSource = laymsdn()
txtmsdn.DisplayMember = "msdn"
txtmsdn.ValueMember = "msdn"

Còn đây là đoạn code để mình lấy dữ liệu :

Public Function Laymsdn() As DataTable
'Tạo một đối tượng Datatable nhận dữ liệu trả về
Dim dt As New DataTable("dn")
'Tạo bộ máy DataAdapter thực hiện command
Dim da As New OleDbDataAdapter()
'Tạo command để lấy dữ liệu ra ngoài
Dim command As New OleDbCommand()
command.Connection = con ' Kết nối
command.CommandType = CommandType.Text 'loại lệnh sử dụng là Text hay là một query trong access
command.CommandText = "SELECT msdn FROM dn"
da.SelectCommand = command ' gán command cho da
da.Fill(dt) 'Nạp dữ liệu vào Table
Return dt

End Function
mong mọi người giúp đỡ cho mình
Về Đầu Trang Go down
Xem lý lịch thành viên
tvduong
Admin
Admin
avatar

Tổng số bài gửi : 147
Join date : 29/10/2010
Age : 27

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Thu Jun 09, 2011 10:02 pm

Bạn viết gì cho đơn giản:
Code:
  con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data source =" & Application.StartupPath & "\database.mdb")
        con.Open()
        da = New OleDbDataAdapter("Select * from vidu", con)
        '    ds = New DataSet
        ' da.Fill(ds, "vd")
        '  ComboBox1.DataSource = ds.Tables("vd")
        dt = New DataTable
        da.Fill(dt)
        ComboBox1.DataSource = dt
        ComboBox1.DisplayMember = "comboboxfield"
3 dòng ghi chú là mình đã test bằng dataset (cả dataset và datatable đều chạy được)

Đây ra project demo:
Code:
http://www.mediafire.com/?y90h16op2tkkkqt

Nếu gặp vấn đề bạn có thể up project lên cho mình xem thế nào, chứ code vậy là chạy Ok đấy bạn!

_____________________
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Thu Jun 09, 2011 11:54 pm

cảm ơn bạn rất nhiều, nếu mình muốn thể hiện không phải là một cột mà la 2 cột trong một bảng thì mình phải làm như thế nào.
ví dụ như : khi nhấp vào combobox thì nó xổ xuống một bên là mssv đồng thời bên cạnh nó là tên của sinh viên phải làm như thế nào
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Fri Jun 10, 2011 12:25 pm

không ai giúp đỡ mình ah. mong các bạn giúp đỡ một tí. thanks
Về Đầu Trang Go down
Xem lý lịch thành viên
tvduong
Admin
Admin
avatar

Tổng số bài gửi : 147
Join date : 29/10/2010
Age : 27

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Fri Jun 10, 2011 1:12 pm

Bạn có thể tạo 2 combobox (hoặc 1 combobox, 1 textbox...): 1 combobox để hiện mssv, 1 combobox để hiện tên sinh viên.
Trong combobox mssv bạn xử lý sự kiện SelectedIndexChanged.
Vd thế này(code C#):
Code:

//Lấy tên sinh viên với 1 mã trong combobox mã sinh viên
 com = new OleDbCommand("Select TenSV from SinhVien where MSSV='" + cbxMaSV.Text + "'", con);
//Gán tên sinh viên tìm được vào combobox tên sinh viên
 cbxTenSV.Text = com.ExecuteScalar().ToString();


_____________________
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Fri Jun 10, 2011 3:32 pm

Xin lỗi bạn, mình viết bằng vb.net nên không biết C#. Bạn có thể chỉnh lại đoạn code không
Về Đầu Trang Go down
Xem lý lịch thành viên
tvduong
Admin
Admin
avatar

Tổng số bài gửi : 147
Join date : 29/10/2010
Age : 27

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Fri Jun 10, 2011 4:38 pm

Trong C# và VB cũng gần như nhau thôi bạn:
Code:

//Lấy tên sinh viên với 1 mã trong combobox mã sinh viên
 com = new OleDbCommand("Select TenSV from SinhVien where MSSV='" & cbxMaSV.Text & "'", con)
//Gán tên sinh viên tìm được vào combobox tên sinh viên
 cbxTenSV.Text = com.ExecuteScalar

_____________________
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Fri Jun 10, 2011 4:50 pm

Mình đã làm giống như bạn nói nhưng nó không xuất hiên :

đây là projects của mình
[You must be registered and logged in to see this link.]
Về Đầu Trang Go down
Xem lý lịch thành viên
tvduong
Admin
Admin
avatar

Tổng số bài gửi : 147
Join date : 29/10/2010
Age : 27

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Fri Jun 10, 2011 10:04 pm

Bạn chỉnh lại chỗ này: Manghanh={0} thành Manghanh='{0}' vì đối số {0} là 1 chuỗi nên phải đặt trong dấu nháy đơn
Code:
  LINHVUCBindingSource.Filter = String.Format("Manghanh='{0}'", ComboBox1.SelectedValue.ToString)

_____________________
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Fri Jun 10, 2011 10:41 pm

Mình post nhầm projects nhưng nhờ zị mà phát hiện chỗ sai. thanks bạn nhiều. Mình cũng tìm được cách khác để giải quyết vấn đề trên!!!

Thanhks Wink
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Sun Jun 19, 2011 6:55 pm

tvduong đã viết:
Bạn có thể tạo 2 combobox (hoặc 1 combobox, 1 textbox...): 1 combobox để hiện mssv, 1 combobox để hiện tên sinh viên.
Trong combobox mssv bạn xử lý sự kiện SelectedIndexChanged.
Vd thế này(code C#):
Code:

//Lấy tên sinh viên với 1 mã trong combobox mã sinh viên
 com = new OleDbCommand("Select TenSV from SinhVien where MSSV='" + cbxMaSV.Text + "'", con);
//Gán tên sinh viên tìm được vào combobox tên sinh viên
 cbxTenSV.Text = com.ExecuteScalar().ToString();

Ý của mình là không tạo 2 combox (...) giống như bạn nói, Mình muốn tạo 1 cái com bobox thôi nhưng trong combox đó phải thể hiện 2 cột ( khi mình xổ xuống thì nó hiện cột đầu tiên là mssv bên cạnh là tên sinh viên để mình biết được mssv đó là của sinh vien nào)
. Mấy ngày này mình đã tìm hiểu nhưng vẫn không có cách giải quyết, Mong mọi người giúp đỡ mình về vấn đề này
Về Đầu Trang Go down
Xem lý lịch thành viên
ddtan90
Admin
Admin
avatar

Tổng số bài gửi : 178
Join date : 30/12/2010
Age : 26
Đến từ : SE 3 - K34

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Sun Jun 19, 2011 9:27 pm

Mình không biết có cách nào không nhưng nếu là mình thì mĩnh sẽ chơi cuội. Nghĩa là thay vì trong câu SQL của bạn chỉ lấy
Code:
select mssv, tensv
thì bạn đổi thành

Code:
select mssv, mssv & " | " & tensv as GIATRIHIENTHI

lúc đó thì mssv sẽ là Valuemember, con GIATRIIENTHI sẽ là Displaymember.

Còn có thể nào làm combobox mà có 2 cột giống trong Access thì mình chưa thử.

_____________________
Nothing is impossible!
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Sun Jun 19, 2011 10:09 pm

code phải viết lại như thế này mới đúng
select mssv, mssv & ' | ' & tensv as GIATRIHIENTHI
Nhưng vẫn còn 1 vấn đề nếu như mình làm như zị thì làm sao có thể insert giá trị đó vào( Có cách nào lấy giá trị là mssv để insert vào không ) trong bảng

Cho Mình Hỏi thêm câu lệnh này

Code:

command.CommandText = "Select msdn  From dn where msdn = 'Left(" + btmsdn.Text + ", 3)'  "
nó sai chỗ nào mà không hiện dữ liệu
Về Đầu Trang Go down
Xem lý lịch thành viên
ddtan90
Admin
Admin
avatar

Tổng số bài gửi : 178
Join date : 30/12/2010
Age : 26
Đến từ : SE 3 - K34

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Mon Jun 20, 2011 9:36 am

CHổ bạn hỏi mình đã có trả lời trong lần trước rùi đó. mấu chốt ở đây là
Code:
lúc đó thì mssv sẽ là Valuemember, con GIATRIIENTHI sẽ là Displaymember.
giống như trong bài của bạn có viết

Trích dẫn :
txtmsdn.DisplayMember = "msdn"
txtmsdn.ValueMember = "msdn"



lúc đó thì khi cần lấy mssv mà mình đã chọn ra thì chỉ cần gọi
Code:

cbbox.SelectedValue

thì sẽ ra mssv chứ không phải cái GIATRIHIENTHI.




_____________________
Nothing is impossible!
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Mon Jun 20, 2011 9:51 am

thanks bạn, Nhưng khi mình viết câu lệnh này thì nó lại báo lỗi
Code:
command.CommandText = "Select tendn as tdn From dn where msdn='" & btmsdn.SelectedValue & " '"
lỗi thông báo là
Code:
Operator '&' is not defined for string "Select msdn as tdn From dn where" and type 'DataRowView'.
mình không hiểu tại sao nó lại báo lỗi như zị
Về Đầu Trang Go down
Xem lý lịch thành viên
ddtan90
Admin
Admin
avatar

Tổng số bài gửi : 178
Join date : 30/12/2010
Age : 26
Đến từ : SE 3 - K34

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Mon Jun 20, 2011 2:33 pm

mình nhớ hình như chổ này đâu có dùng toán tử & . hình như là dùng toán tử + để ghép chuỗi thỉ phải. bạn thử toán tử + thử xem! Không nhớ rỏ nữa!

_____________________
Nothing is impossible!
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Mon Jun 20, 2011 3:18 pm

cả 2 dấu đó đều báo lỗi, mình tìm nãy giờ vẫn không ra
Về Đầu Trang Go down
Xem lý lịch thành viên
quainhan_kid95
Thành viên nhiệt tình
Thành viên nhiệt tình
avatar

Tổng số bài gửi : 27
Join date : 16/02/2011

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Thu Jun 23, 2011 11:54 pm

quainhan_kid95 đã viết:
thanks bạn, Nhưng khi mình viết câu lệnh này thì nó lại báo lỗi
Code:
command.CommandText = "Select tendn as tdn From dn where msdn='" & btmsdn.SelectedValue & " '"
lỗi thông báo là
Code:
Operator '&' is not defined for string "Select msdn as tdn From dn where" and type 'DataRowView'.
mình không hiểu tại sao nó lại báo lỗi như zị

Sad Sad Sad Mọi nhười giúp mình cái này với
Về Đầu Trang Go down
Xem lý lịch thành viên
ddtan90
Admin
Admin
avatar

Tổng số bài gửi : 178
Join date : 30/12/2010
Age : 26
Đến từ : SE 3 - K34

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Sun Jun 26, 2011 12:32 am

mình hiểu rồi.
Nếu bạn dùng câu lệnh này trong C# thì bị lỗi toán tử &. để ghép chuỗi trong C# thì bạn phải dùng dấu +. ( nếu VB thì mình không nhớ rõ)
thêm 1 cái lỗi nữa là bạn không thể ghép 2 đối tượng khác nhau như vậy. 1 là String 1 là DataRowView thì làm sao mà nó ghép được!

_____________________
Nothing is impossible!
Về Đầu Trang Go down
Xem lý lịch thành viên
tvduong
Admin
Admin
avatar

Tổng số bài gửi : 147
Join date : 29/10/2010
Age : 27

Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   Sun Jun 26, 2011 7:18 am

Bạn thử gì xem sao:
Code:
command.CommandText = "Select tendn as tdn From dn where msdn='" & btmsdn.Text & " '"

_____________________
Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: Lấy Giá Trị Vào Combobox   

Về Đầu Trang Go down
 
Lấy Giá Trị Vào Combobox
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Câu lạc bộ Hỗ Trợ Học Tập :: LẬP TRÌNH :: .::LẬP TRÌNH VB/C#-
Chuyển đến