Menambahkan datatable ke dalam kumpulan data selalu kosong meskipun datatable memiliki baris

pemrograman


Saya memiliki Kumpulan Data dengan hasil yang saya dapatkan dari DB, saya menyimpannya sebagai kumpulan data dasar dan ingin pemfilteran apa pun dilakukan pada Kumpulan Data kedua.

Saya memastikan saya memiliki data yang difilter pada datatable tetapi ketika saya menggunakan dataset.table.add

kumpulan data selalu kosong

kode di bawah ini

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();
      }

Apa yang saya coba:

Columns headers on datatable match by doing this

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

Solusi 1

DEBUGER! Hancurkan kode di bawah debugger dan tetapkan breakpoint pada baris yang mengisi DataSet. Jalankan kode satu baris pada satu waktu dan arahkan mouse ke variabel untuk melihat kontennya. Anda bisa mengetahuinya dalam hitungan detik!

Masalah yang Anda lihat sudah jelas. Anda .Menggabungkan tabel yang Anda dapatkan ke dalam DataSet baru, filteredMemberListDS, lalu kamu menelepon filteredMemberListDS.Clear() di atasnya, yang mematikan semua tabel di DataSet, dan Anda bertanya-tanya mengapa Anda tidak mendapatkan data kembali darinya? ANDA MEMBUNUH TABEL DI DATASET!

コメント

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