急问:datagridview如何读写数据到XML文件
先是把datagridview的数据写入XML文件,然后还能读取XMl文件到datagridview上
先是把datagridview的数据写入XML文件,然后还能读取XMl文件到datagridview上
解决方案 »
- 请问在vs2008中如何看一个函数被调用的情况,就是在find results 1那里显示的?
- vs 2008 对JS不能智能提示
- 将Form加到Panel后 打开的窗口怎么切换
- 如何理解C#中的sqlparameter
- 给个好建议,关于学习C#
- linux下的c程序和windows下的c#的udp通信问题..
- asp程序员转换到asp.net好困难啊 ?
- treeview的htm页面调用问题!急
- c#一定要在windows2000下装吗
- [★★★]我用 datagridView 或 GridView 绑定了一个, 实现IList接口的类,自动生成的列,排序有问题
- wince5.0上SQLCE数据库问题
- API
set.ReadXml(@"C:\XML1.xml");
dataGridView.DataSource = set.Tables[0];set.WriteXml(@"C:\XML1.xml");
但是老出错啊
说找不到Tables[0]的第0行
主要难点还是怎样把datagridview的数据写入一个新的XML文件中
简单的帮搂主搞了下伪代码,可以作为参考:private void SaveToXml()
{
this.CreateColumnXmlNode();
for (int index = 0; index < this.dataGridView1.Rows.Count; index++)
{
DataGridViewRow row = this.dataGridView1.Rows[index];
this.CreateXmlNode(row);
}
}private void CreateColumnXmlNode()
{
for (int index = 0; index < this.dataGridView1.Columns.Count; index++)
{
string szHeaderText = this.dataGridView1.Columns[index].HeaderText;
//
//.....保存列标题和索引到xml节点的对应属性中
}
}private void CreateRowXmlNode(DataGridViewRow row)
{
for (int index = 0; index < row.Cells.Count; index++)
{
DataGridViewCell cell = row.Cells[index];
//
//.....保存单元格内容,以及单元格索引到xml节点的对应属性中
}
}xml结构:
<DataGridViewData>
<Columns>
<Item Index = "索引" Text = "列标题"/>
......
</Columns>
<Rows>
<Item Index = "索引" Value = "内容"/>
......
</Rows>
</DataGridViewData>
====================================================
说找不到Tables[0]的第0行,DataSet中没有内容,你判断一下就ok:
if(set==null)
{
//Not doing anything
}
or
if(set.Tables[0].Rows.count > 0)
{
//doing something here
}主要难点还是怎样把datagridview的数据写入一个新的XML文件中,
用ExcuteXmlReader去获取,这个在vs2005中已具备。
<Rows>
<Item Cell1 = "内容" Cell2 = "内容" Cell3 = "内容" ..../>
......
</Rows>
其中,Cell1 Cell2 Cell3需要动态生成
DataTable tb = this.dataGridView1.DataSource as DataTable;
if(tb != null)
{
tb.WriteXml(@"C:\table.xml",true);
return;
}
DataView dv = this.dataGridView1.DataSource as DataView;
if(dv != null)
{
dv.Table.WriteXml(@"C:\table.xml",true);
return;
}
IList list = this.dataGridView1.DataSource as IList;
if(list != null)
{
//to do,如果是IList,就要你自己想办法导出了
//XmlDocument or XmlWriter都可以考虑
}
--------xml节点以及文档是自己创建的XML结构是自己先写好的吗?
--------不是先写好的,而是预先定义好的建议搂主可以自己去学习一下XML文档操作,以及XPath的有关资料