关于Table的奇怪问题
日期:2006-12-24 荐:
关于Table的奇怪问题我建立了一个内存表:构造函数中写:nodeRect=new DataTable();nodeRect.Columns.Add("Rect_NodeId",Type.GetType("System.String"));nodeRect.Columns.Add("Rect_LeftX",Type.GetType("System.String"));nodeRect.Columns.Add("Rect_TopY",Type.GetType("System.String"));nodeRect.Columns.Add("Rect_Height",Type.GetType("System.String"));nodeRect.Columns.Add("Rect_Width",Type.GetType("System.String"));nodeRect.Columns.Add("Rect_WfId",Type.GetType("System.String"));nodeRect.Columns.Add("Rect_Select",Type.GetType("System.String"));DataColumn[] columnArray3 = new DataColumn[1] { nodeRect.Columns["Rect_NodeId"] } ;nodeRect.PrimaryKey = columnArray3;然后有各种操作:DataView dv=nodeRect.DefaultView;int n=dv.Count;调试时发现nodeRect没有记录,但明明有一条记录,绝对没有删除过内容而且添加修改都写了nodeRect.AcceptChanges();没头序啊,哪位大侠帮忙分析一下??怎么没有看到你添加记录的代码?没加纪录看看nodeRect.Rows.Count,有可能是NewRow方法没有EndEdit只是添加了Column,没有RowDataRow row = table.NewRow();table.Rows.Add(row);非得让我把全部代码写出来???public bool InsertNodeRect(string RectNodeId,string RectLeftX,string RectTopY,string RectHeight,string RectWidth ,string RectWfId,string RectSelect){bool v=false;DataRow row1=nodeRect.Rows.Find(RectNodeId);if(row1==null){row1=nodeRect.NewRow();row1.BeginEdit();row1["Rect_NodeId"]=RectNodeId;row1["Rect_LeftX"]=RectLeftX;row1["Rect_TopY"]=RectTopY;row1["Rect_Height"]=RectHeight;row1["Rect_Width"]=RectWidth;row1["Rect_WfId"]=RectWfId;row1["Rect_Select"]=RectSelect;row1.EndEdit();nodeRect.Rows.Add(row1);nodeRect.AcceptChanges();isSaved=false;v=true;}return v;}不用怀疑记录是否已经插入进去了,如回复人: 3tzjq(永不言弃) ( ) 所说,真是怪:int x=nodeRect.Rows.Count;确实是2,但DataView dv=nodeRect.DefaultView;int n=dv.Count;n又确实是0,我晕啊!为什么??后者是在应用 RowFilter 和 RowStateFilter 之后,获取 DataView 中记录的数量DataView dv =new DataView;dv.Table=nodeRect;//.DefaultView;return dv.Count;但是我没用过RowFilter 和 RowStateFilter ,就是在多个函数中写过DataView dv=nodeRect.DefaultView;但是肯定没有影响啊,私有变量啊回复人: 3tzjq(永不言弃) 说的方法会出现一个异常,无法绑定到没有名称的表,因为我没有使用Dataset所以不会存在表名我的问题解决了但 我还是有点不明白这两个写法的区别:DataView dv=wfRoutes.DefaultView;int n=dv.Count;//n=0和wfRoutes.TableName="T1";DataView dv=new DataView();dv.Table=wfRoutes;int n=dv.Count;//n>0
标签: