【发布时间】:2017-06-22 05:46:08
【问题描述】:
我编写了一个简单的程序,将数据库中的数据集写入 xml 文件:
private void button1_Click(object sender, EventArgs e)
{
{
string ConnString = (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\temp\\names.mdb;Persist Security Info=False");
using (OleDbConnection Conn = new OleDbConnection(ConnString))
{
string strSql = "Select * from Table1"; //only launch in main
richTextBox1.Text = richTextBox1.Text + " Querying Launch Parameters";
try
{
OleDbConnection con = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\\temp\\names.mdb; Persist Security Info = False");
OleDbCommand cmd = new OleDbCommand(strSql, con);
con.Open();
cmd.CommandType = CommandType.Text;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "fname,sname");
// Extract data set to XML file
ds.WriteXml(@"c:\\temp\\my.xml");
}
catch (Exception ex)
{
richTextBox1.Text = richTextBox1.Text + "\n Error " + ex + "\n"; ;
}
}
}
}
为反向过程编写代码如何绘制空白数据集
private void button2_Click(object sender, EventArgs e)
{
string strSql = "insert into Tabel1";
try
{
OleDbConnection con = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\\temp\\Set.mdb; Persist Security Info = False");
OleDbCommand cmd = new OleDbCommand(strSql, con);
con.Open();
cmd.CommandType = CommandType.Text;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
XmlReader xmlFile;
xmlFile = XmlReader.Create("c:\\temp\\my.xml", new XmlReaderSettings());
ds.ReadXml("c:\\temp\\my.xml");
// while (ds.ReadXml("c:\\temp\\my.xml"));
{
ds.ReadXml("c:\\temp\\my.xml");
}
// dataGridView1.DataSource = ds;
// dataGridView1.DataMember = "launch";
}
catch (Exception ex)
{
richTextBox1.Text = richTextBox1.Text + "\n Error " + ex + "\n";
}
finally
{
//fsReadXml.Close();
}
}
如何修复它以便我得到完整的数据集??
【问题讨论】:
-
添加架构:ds.WriteXml(@"c:\\temp\\my.xml",XmlWriteMode.WriteSchema);
-
如果你只使用
DataSet ds = new DataSet(); ds.ReadXml("c:\\temp\\my.xml");会发生什么 -
@Damith 我所知道的只是在使用 dataGridView1.DataSource = ds; 行显示它时尽管显示了我的数据,但我的数据并不简单
-
@jdweng 仅将模式添加到文件中,它不会缝合以创建数据。有没有办法将两者结合起来??
-
应该是:ds.SchemaSerializationMode = SchemaSerializationMode.IncludeSchema
标签: c# .net xml database dataset