[ad_1]
J’ai un ensemble de données avec les résultats que j’obtiens de la base de données, je le garde comme ensemble de données de base et j’aimerais que tout filtrage soit effectué sur le deuxième ensemble de données.
Je m’assure d’avoir les données filtrées sur datatable mais lorsque j’utilise dataset.table.add
l’ensemble de données est toujours vide
code ci-dessous
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(); }
Ce que j’ai essayé :
Columns headers on datatable match by doing this foreach (var item in BaseMembersListDS.Tables[0].Columns) dt.Columns.Add(item.ToString());
Solution 1
DÉBUGEUR ! Gâchez le code sous le débogueur et définissez un point d’arrêt sur la ligne qui remplit le DataSet. Exécutez le code ligne par ligne et passez la souris sur les variables pour voir leur contenu. Vous auriez pu le comprendre en quelques secondes !
Le problème que vous examinez est évident. Vous fusionnez une table que vous avez obtenue dans un nouveau DataSet, filteredMemberListDS
, alors tu as appelé filteredMemberListDS
.Clear() dessus, ce qui a tué toutes les tables du DataSet, et vous vous demandez pourquoi vous n’en récupérez aucune donnée ? VOUS AVEZ TUÉ LES TABLES DE L’ENSEMBLE DE DONNÉES !
[ad_2]
コメント