Datasource trong C# là gì

Bạn nên chuyển đổi đầu tiên DataSource in BindingSource, xem ví dụBindingSource bs = (BindingSource)dgrid.DataSource; // Se convierte el DataSource DataTable tCxC = (DataTable) bs.DataSource;

Với dữ liệu của tCxC bạn có thể làm bất cứ điều gì.

Giả sử DataSource của bạn thuộc kiểu DataTable, bạn có thể thực hiện việc này:myGridView.DataSource as DataTable

Cá nhân tôi sẽ đi với:DataTable tbl = Gridview1.DataSource as DataTable;

Điều này sẽ cho phép bạn kiểm tra null vì điều này dẫn đến đối tượng DataTable hoặc null. Truyền nó dưới dạng DataTable bằng cách sử dụng (DataTable) Gridview1.DataSource sẽ gây ra lỗi sự cố trong trường hợp DataSource thực sự là một Bộ dữ liệu hoặc thậm chí là một loại bộ sưu tập.

Tài liệu hỗ trợ: Tài liệu MSDN trên "as"

Ambu,

Tôi đã có cùng một vấn đề như bạn, và đây là mã tôi đã sử dụng để tìm ra nó. Mặc dù, tôi không sử dụng phần hàng chân trang cho mục đích của mình, tôi đã đưa nó vào mã này.    DataTable dt = new DataTable(); // add the columns to the datatable if (GridView1.HeaderRow != null) { for (int i = 0; i < GridView1.HeaderRow.Cells.Count; i++) { dt.Columns.Add(GridView1.HeaderRow.Cells[i].Text); } } //  add each of the data rows to the table foreach (GridViewRow row in GridView1.Rows) { DataRow dr; dr = dt.NewRow(); for (int i = 0; i < row.Cells.Count; i++) { dr[i] = row.Cells[i].Text.Replace("&nbsp;",""); } dt.Rows.Add(dr); } //  add the footer row to the table if (GridView1.FooterRow != null) { DataRow dr; dr = dt.NewRow(); for (int i = 0; i < GridView1.FooterRow.Cells.Count; i++) { dr[i] = GridView1.FooterRow.Cells[i].Text.Replace("&nbsp;",""); } dt.Rows.Add(dr); }

Nếu bạn làm gridview.bind() tại:if(!IsPostBack) { //your gridview bind code here... }

Sau đó, bạn có thể sử dụng DataTable dt = Gridview1.DataSource as DataTable; trong chức năng để truy xuất dữ liệu.

Nhưng tôi liên kết dữ liệu với Gridview khi tôi nhấp vào nút và ghi vào tài liệu của Microsoft:

HTTP là một giao thức phi trạng thái. Điều này có nghĩa là một máy chủ Web coi mỗi yêu cầu HTTP cho một trang là một yêu cầu độc lập. Máy chủ không có kiến ​​thức về các giá trị biến được sử dụng trong các yêu cầu trước đó.

Nếu bạn có cùng điều kiện, thì tôi sẽ khuyên bạn nên sử dụng Session để duy trì giá trị.Session["oldData"]=Gridview1.DataSource;

Sau đó, bạn có thể nhớ lại giá trị khi trang đăng lại.DataTable dt=(DataTable)Session["oldData"];

Tài liệu tham khảo: //msdn.Microsoft.com/en-us/l Library/ms178581 (v = vs.110) .aspx # Anchor_

//www.c-sharpcorner.com/UploadFile/225740/intributiontion-of-session-in-Asp-Net/

Tôi đã sử dụng dòng mã dưới đây và nó hoạt động, Hãy thử điều nàyDataTable dt =  dataSource.Tables[0];

Video liên quan

Chủ đề