国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

同一DataTable下創建多個結構數據相同的DataView的小問題

2019-11-14 16:04:34
字體:
來源:轉載
供稿:網友

昨天在根據經理的要求修改公司后臺的時候,遇到了一個很奇怪的問題

                DataView dvFocus = new DataView(ds.Tables[0]);                DataView dvLook = new DataView(ds.Tables[0]);                DataView dvNewUser = new DataView(ds.Tables[0]);                DataView dvConsume = new DataView(ds.Tables[0]);                DataView dvUsual = new DataView(ds.Tables[0]);

大概的意思就是用同一個DataTable來創建多個DataView,結構和數據都相同。

然后對前4個DataView使用RowFilter進行篩選,篩選完成之后,從最后一個DataView里剔除掉前面重復的數據

這個時候,問題就來了

                if (dvConsume.Count > 0)                {                    for (int i = 0; i < dvConsume.Count; i++)                    {                        for (int j = 0; j < dvUsual.Count; j++)                        {                            if (dvConsume[i]["UserID"].ToString() == dvUsual[j]["UserID"].ToString())                            {                                dvUsual[j].Delete();                            }                        }                    }                }

這個dvConsume里只有一行數據,并且我是放在最后進行篩選的,根據代碼來看,應該是沒什么問題的,可是

每次都會出現【索引 0 不是為負數,就是大于行數。】這個錯誤,讓我很是郁悶,因為代碼沒有邏輯上的問題啊

由于哪會兒快下班了,于是就把問題放到了今天來解決

在此斷點調試,比對數據,發現

dvUsual[j].Delete();

這個刪掉的行會同步到每個DataView,我的天,原來問題出在這

然后我去百度DataTable下的多個DataView是否會同步,沒有結果

于是想到了clone()這個方法,果斷試了下,一運行,發現一條數據都沒有了。

然后看了下clone()的描述,原來是復制結構和約束,不復制數據。

最后找到了Copy()這個方法,復制結構和數據,我心想應該可以了

運行,沒報錯。

問題解決

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武清区| 青州市| 郓城县| 集贤县| 抚远县| 敦化市| 北川| 铁力市| 东城区| 庆城县| 普宁市| 光山县| 濉溪县| 望江县| 花垣县| 惠东县| 九龙城区| 铜川市| 桓仁| 连江县| 布尔津县| 通化市| 岳池县| 台江县| 呼和浩特市| 马山县| 泰兴市| 浪卡子县| 囊谦县| 休宁县| 望江县| 永德县| 岳普湖县| 阳朔县| 伊宁县| 普格县| 东海县| 调兵山市| 绍兴市| 玉山县| 尤溪县|