• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Đưa dữ liệu từ DataGridView vào DataTable

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Moderators: tungblt, vuathongtin

tamnv
Thành viên năng nổ
Thành viên năng nổ
Posts: 56
Joined: Thu 30/04/2009 10:52 pm

Đưa dữ liệu từ DataGridView vào DataTable

Postby tamnv » Sat 27/02/2010 10:21 pm

Mình muốn tạo một DataTable chứa dữ liệu của DataGriwView.
Ý tưởng là tạo một Mảng, Duyệt dữ liệu trong DataGridView đưa vào Mảng đó. tiếp tục tạo ra DataTable Sau đó Import từ Mảng. Nhưng có vẻ phức tạp quá. Bạn nào có cách nào hay hơn không "chỉ giáo" cho, Cám ơn nhiều!!!



User avatar
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Posts: 1123
Joined: Wed 24/09/2008 4:04 pm
Location: TPHCM
Has thanked: 1 time
Been thanked: 28 times

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby tungcan5diop » Sat 27/02/2010 11:37 pm

tamnv wrote:Mình muốn tạo một DataTable chứa dữ liệu của DataGriwView.
Ý tưởng là tạo một Mảng, Duyệt dữ liệu trong DataGridView đưa vào Mảng đó. tiếp tục tạo ra DataTable Sau đó Import từ Mảng. Nhưng có vẻ phức tạp quá. Bạn nào có cách nào hay hơn không "chỉ giáo" cho, Cám ơn nhiều!!!

duyệt qua DataGridView,Import từng dòng vào Datatable. mấy cái này forum đểu có cả rồi đó,bạn chịu khó tìm nha.
Hỡi thế gian bug(lỗi) là gì?
Mà sửa...hoài không hết!

tamnv
Thành viên năng nổ
Thành viên năng nổ
Posts: 56
Joined: Thu 30/04/2009 10:52 pm

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby tamnv » Sun 28/02/2010 8:53 am

Cách này mình chưa làm nhưng, theo mình nghĩ thì không được vì nó không có tên cột.

User avatar
haitu
Guru
Guru
Posts: 206
Joined: Sat 10/09/2005 2:50 pm
Has thanked: 1 time
Been thanked: 19 times
Contact:

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby haitu » Sun 28/02/2010 12:07 pm

có phải bạn muốn lấy dữ liệu trong datagridview vào trong datatable??? nếu vậy chỉ cần set datatable = với cái source của datagridview là được. Nếu muốn thêm cột thì dùng phương thức columns.add, thêm dòng thì rows.add

tamnv
Thành viên năng nổ
Thành viên năng nổ
Posts: 56
Joined: Thu 30/04/2009 10:52 pm

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby tamnv » Sun 28/02/2010 6:59 pm

Source của dataGridView toàn mã thôi. dataGridView của mình add thêm một số Combox chứa tên. Mình muốn đưa sang một bảng khác có cả mã và tên.

User avatar
meoconbuongbinh1712
Thành viên năng nổ
Thành viên năng nổ
Posts: 82
Joined: Thu 28/12/2006 3:49 pm
Location: Quê của người phụ nữ nặng nhất thế giới
Has thanked: 1 time
Been thanked: 2 times

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby meoconbuongbinh1712 » Mon 01/03/2010 9:19 am

ý của bác haitu là bạn set datatable=datasource của gridview
The worst way to miss someone is to be sitting right beside them knowing
you can't have them

tamnv
Thành viên năng nổ
Thành viên năng nổ
Posts: 56
Joined: Thu 30/04/2009 10:52 pm

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby tamnv » Mon 01/03/2010 10:05 am

Trong DataBase chỉ lưu mã hàng hoá, mã đơn vị tính...... Nhưng khi đưa ra GridView mình phải đưa ra Tên hàng hoá, tên Đơn vị tính ....Như vậy một dòng trong Grid chứa cả mã và tên mình muốn tạo ra một DataTable giống y như trong Grid thể hiện. chứ còn set datatable=datasource của gridview thì còn nói làm gì nữa.

User avatar
meoconbuongbinh1712
Thành viên năng nổ
Thành viên năng nổ
Posts: 82
Joined: Thu 28/12/2006 3:49 pm
Location: Quê của người phụ nữ nặng nhất thế giới
Has thanked: 1 time
Been thanked: 2 times

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby meoconbuongbinh1712 » Mon 01/03/2010 4:06 pm

hiện tại,grid của bạn đã hiện được đầy đủ các thông tin,và bây giờ bạn muốn chuyển cái dl trên grid đó về datatable,sao set lại k được?
bạn đưa đoạn fill dl vào grid của bạn lên đây xem
The worst way to miss someone is to be sitting right beside them knowing
you can't have them

ShareToShare
Mạnh Thường Quân
Mạnh Thường Quân
Posts: 168
Joined: Thu 27/11/2008 4:04 pm
Has thanked: 1 time

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby ShareToShare » Mon 01/03/2010 5:45 pm

không phải để bắt bẽ nhau nhưng tui thấy @tamnv lập luận hơi bị lũng cũng
vd :
tamnv » Hôm nay 10:05 am
Trong DataBase chỉ lưu mã hàng hoá, mã đơn vị tính

vậy tên hh,tên dvt lấy ở đâu ??
Theo kn tui sẽ nghĩ có :
table A(mahh,madvt)
table B(mahh,tenhh)
table C(madvt,tendvt)
=>DataBase sẽ có tenhh,tendvt.
Và việc muốn hiện lên DataGV chỉ còn là vấn đề truy vấn trong 3 table trên.
Từ DataGV chuyển dữ liệu tới Datatable thì làm như cách của haitu,meocon xem sao (cái này tui chưa test nên ko biết dc ko)
Không biết thế có đúng ko nhỉ. Nhưng tôi cũng thấy lạ một chổ là thông thường mình muốn đỗ dữ liệu ra DataGV thì mình phải đỗ dữ liệu từ csdl vào 1 cái dataset (hoặc datatable) nào đó rồi mới . DataGV.DataSource=datatable ;//hoặc dataset

tamnv
Thành viên năng nổ
Thành viên năng nổ
Posts: 56
Joined: Thu 30/04/2009 10:52 pm

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby tamnv » Mon 01/03/2010 6:48 pm

Bác SharetoShare nói đúng rồi trong CSDL mình phải có danh mục hàng hóa(dm_hhoa), Đvt.... . Trong GridView mình add Combox và gán như sau.
Me.dgvTen_hhoa.DataPropertyName = "ma_hhoa"
Me.dgvTen_hhoa.DataSource = Me.Dm_hhoaBindingSource
Me.dgvTen_hhoa.DisplayMember = "ten_hhoa"
Me.dgvTen_hhoa.HeaderText = "Tên Hàng hoá"
Me.dgvTen_hhoa.Name = "dgvTen_hhoa"
Me.dgvTen_hhoa.ValueMember = "ma_hhoa"

Trong DataView thể hiện đầy đủ Mã hàng, Tên hàng. Mình muốn tạo một Data khác giống y như GridView thể hiện. Mình viết thế này:
' Dim BingD As New BindingSource
'BingD.DataSource = Me.dgvHhx_ct.DataSource
'Me.dgv1.DataSource = BingD.DataSource
nhưng nó đưa ra toàn Mã... không thấy Tên hàng đâu

ShareToShare
Mạnh Thường Quân
Mạnh Thường Quân
Posts: 168
Joined: Thu 27/11/2008 4:04 pm
Has thanked: 1 time

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby ShareToShare » Tue 02/03/2010 9:46 am

đã sữa.
mình thấy bạn làm như thế cũng hợp lý mà sao ko dc nhỉ.
để nghĩ thêm :-/
bạn thử sữa chỗ này thử xem :
Me.dgvTen_hhoa.ValueMember = "ma_hhoa"
thành
Me.dgvTen_hhoa.ValueMember = "ten_hhoa"

tamnv
Thành viên năng nổ
Thành viên năng nổ
Posts: 56
Joined: Thu 30/04/2009 10:52 pm

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby tamnv » Tue 02/03/2010 10:56 pm

Rõ ràng trên GridView có "Tên hàng hoá", Mình gán thế này:
Dim Ten_hhoa As String = Me.dgvHhx_ct.Item(Me.dgvHhx_ct.Columns("dgvTen_hhoa").Index, i).Value.
Thế mà nó chỉ ra "Mã hàng" thôi.
Theo tôi nghĩ là trong nguồn DataGridView chứa "mã", nhưng khi thể hiển lên màn hình nó tìm trong "Danh mục Hàng hoá" nếu có mã nào bằng "Mã hàng hoá" thì thể hiện " Tên hàng".
Mình hiểu thế nhưng "Tên hàng" hiển thị trên màn hình không nào lấy ra được.
Cụ Nguyễn Du nói rằng " Biết người biết mặt biết lòng làm sao". Nhưng mình thấy cả "Mặt", cả "Lòng" mà còn khó khăn.

ThanhLam

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby ThanhLam » Fri 05/03/2010 9:42 am

Theo mình nhĩ thì ko đc đâu vì theo những gì miêu tả ở trên thì cái dataTable của bạn chỉ chứa Mã thôi còn tại sao nó hiện cái name ở đó là do nó dựa vào cái mã đó và show ra thôi. nếu bạn muốn làm như vậy bạn thử thêm 1 field (tạo thuộc tính ẩn) rồi bạn add vào cái name kia vào bảo đảm có liền (không biết có đúng không mọi người cho ý kiến)

nguyenduytu75it
Posts: 2
Joined: Wed 18/12/2013 7:58 am

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby nguyenduytu75it » Wed 18/12/2013 8:04 am

mấy pro cho mình hỏi, mình muốn kéo thả hoặc nhấp đôi chuột vào 1 dòng dữ liệu từ datagridview1 thì nó sẽ chuyển sang datagridview2 thì làm thế nào dc

ARSENAL2004
Posts: 5
Joined: Tue 05/08/2008 1:10 am

Re: Đưa dữ liệu từ DataGridView vào DataTable

Postby ARSENAL2004 » Sat 21/12/2013 5:08 am

dùng TableMappings của đối tượng SqlDataAdapter, nó sẽ tự kiểm tra datagridview của bạn có dòng nào được update, dòng nào được insert và sau đó đưa trả lại database.


Return to “Visual Basic .NET và C# (VB.NET & C#)”

Who is online

Users browsing this forum: No registered users and 20 guests