Việc thêm dữ liệu vào tập dữ liệu luôn trống mặc dù bảng dữ liệu có hàng

lập trình

[ad_1]

Tôi có một Tập dữ liệu với các kết quả tôi nhận được từ DB, tôi giữ nó làm tập dữ liệu cơ sở và muốn mọi hoạt động lọc sẽ được thực hiện trên Tập dữ liệu thứ hai.

Tôi đảm bảo rằng tôi có dữ liệu đã được lọc trên dữ liệu nhưng khi tôi sử dụng tập dữ liệu.table.add

tập dữ liệu luôn trống

mã bên dưới

protected void showMembers(Boolean filtered=false)
      {
          using (var cn = GetConnection())
          {
              cn.Open();
              string cmsGetProfiles = "SELECT * FROM [Vm_siteMembers] order by [Last Login Time] desc ";

              SqlDataAdapter EventsAdapter = new SqlDataAdapter(cmsGetProfiles, cn);
              BaseMembersListDS.Clear();// this DataSet defined as public static

              EventsAdapter.Fill(BaseMembersListDS);

              using (DataSet filteredMemberListDS = new DataSet())
              {
                  filteredMemberListDS.Merge(BaseMembersListDS.Tables[0]);
                  if (filtered)
                  {
                      DataTable dt = new DataTable(); dt.TableName = "filtered";

                      filteredMemberListDS.Clear();
                      foreach (var item in BaseMembersListDS.Tables[0].Columns)
                          dt.Columns.Add(item.ToString());

                      foreach (DataRow dr in BaseMembersListDS.Tables[0].AsEnumerable().Take(5))
                          dt.ImportRow(dr);

                      filteredMemberListDS.Tables.Add(dt);
                  }
                  MembersdataBind(filteredMemberListDS);//why filteredMemberListDS is empty
              }
          }
      }

      protected void MembersdataBind(DataSet filteredMemberList)
      {

          MemebersDdl.DataSource = filteredMemberList;
          MemebersDdl.DataBind();
      }

Những gì tôi đã thử:

Columns headers on datatable match by doing this

foreach (var item in BaseMembersListDS.Tables[0].Columns)
                            dt.Columns.Add(item.ToString());

Giải pháp 1

GỠ LỖI! Làm hỏng mã trong trình gỡ lỗi và đặt điểm ngắt trên dòng điền vào Tập dữ liệu. Thực thi mã từng dòng một và di chuột qua các biến để xem nội dung của chúng. Bạn có thể đã tìm ra điều này trong vài giây!

Vấn đề bạn đang xem xét là hiển nhiên. Bạn .Hợp nhất một bảng bạn có vào một Tập dữ liệu mới, filteredMemberListDS, sau đó bạn đã gọi filteredMemberListDS.Clear() trên đó, nó đã giết chết tất cả các bảng trong DataSet, và bạn đang thắc mắc tại sao bạn không nhận được dữ liệu nào từ nó? BẠN ĐÃ GIẾT CÁC BẢNG TRONG DỮ LIỆU!

[ad_2]

コメント

タイトルとURLをコピーしました