DataGridView读取大数据的问题 XML格式的文件,有25M在用BackgroundWorker读取的时候仍然有假死现象,而且读完数据后,DataGridView中的滚动条不见了。怎么解决呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 XmlDocument MyXML = new XmlDocument(); MyXML.Load("1.xml"); XmlNode Node = MyXML.DocumentElement; string loginNames = comboboxx1.Text; XmlNodeList nodes; XmlElement root = MyXML.DocumentElement; nodes = root.SelectNodes("//loginer[loginName = '" + loginNames + "']"); string strn = null; string strpwd = null; foreach (XmlNode xn in nodes) { XmlElement xe = (XmlElement)xn; XmlNodeList nodech = xe.ChildNodes; foreach (XmlNode xnch in nodech) { XmlElement xech = (XmlElement)xnch; if (xech.LocalName == "loginName") { strn = xech.InnerText; ; if (strn == loginNames) { XmlNode xnpwd = xech.NextSibling; strpwd = xnpwd.InnerText; } } } } this.textBox1.Text = strpwd;<?xml version="1.0" encoding="GB2312" ?> - <login>- <loginer> <loginName>123</loginName> <loginPWD /> </loginer>- <loginer> <loginName>chazikai24</loginName> <loginPWD>123456</loginPWD> </loginer>- <loginer> <loginName>4</loginName> <loginPWD /> </loginer> </login>这个是我写的登录框界面。我把登陆过的帐号保存在xml里。打开窗体就自动读取xml到combobox。你可以参考下。读取xml用的是遍历子节点,所以出现假死是在读,文件越大需要的时间越长。全部读完之后才会显示在datagridview里 显示进度条在ProgressChanged、RunWorkerCompleted里进行 数据我会读取,我独到了DataSet中去的关键数据量大,用户交互不友好,而且用backgroundworker后右侧滚动条消失,看到有的文章说是因为多线程的问题。 System.Threading.Timer 的问题 在线等。。。 c#编好的程序转移到别的电脑数据库的问题 ImageList问题 求多线程例子 gridview 如何固定行高? c# Gridview 点击列 弹出窗口 请问.net程序生成后在哪里设定编译成IL语言还是直接生成机器码,可以在没有装.NET 的机器上使用? 请教:sqlserver中建的表没有主键,但是在c#中需要删除该表里的记录,不知怎么办?要代码谢谢! DataSet.Tables[0]的使用问题 怎样得到活动窗口中的具体内容 求C#的三维数据可视化实例 关于查找算法..
MyXML.Load("1.xml");
XmlNode Node = MyXML.DocumentElement;
string loginNames = comboboxx1.Text;
XmlNodeList nodes;
XmlElement root = MyXML.DocumentElement;
nodes = root.SelectNodes("//loginer[loginName = '" + loginNames + "']");
string strn = null;
string strpwd = null;
foreach (XmlNode xn in nodes)
{
XmlElement xe = (XmlElement)xn;
XmlNodeList nodech = xe.ChildNodes;
foreach (XmlNode xnch in nodech)
{
XmlElement xech = (XmlElement)xnch;
if (xech.LocalName == "loginName")
{ strn = xech.InnerText; ;
if (strn == loginNames)
{
XmlNode xnpwd = xech.NextSibling;
strpwd = xnpwd.InnerText;
}
}
}
}
this.textBox1.Text = strpwd;<?xml version="1.0" encoding="GB2312" ?>
- <login>
- <loginer>
<loginName>123</loginName>
<loginPWD />
</loginer>
- <loginer>
<loginName>chazikai24</loginName>
<loginPWD>123456</loginPWD>
</loginer>
- <loginer>
<loginName>4</loginName>
<loginPWD />
</loginer>
</login>
这个是我写的登录框界面。我把登陆过的帐号保存在xml里。打开窗体就自动读取xml到combobox。你可以参考下。
读取xml用的是遍历子节点,所以出现假死是在读,文件越大需要的时间越长。全部读完之后才会显示在datagridview里
在ProgressChanged、RunWorkerCompleted里进行
关键数据量大,用户交互不友好,而且用backgroundworker后
右侧滚动条消失,看到有的文章说是因为多线程的问题。