我想从XML文件加载DataGridView
我把'加载''像这样的Button
事件中的代码:
private void metroButton13_Click(object sender, EventArgs e)
{
// load
DataSet dataSet = new DataSet();
dataSet.ReadXml(@"C:\temp\xml.xml");
dataGridView1.DataSource = dataSet.Tables[0];
}
使用 const UniCode-String正确加载我想要的内容
我现在需要的是一个 PopUp 窗口,我可以在其中选择要绑定到DataSource
的文件而不是 const " C:\ TEMP \ xml.xml"字符串。
是的我知道我尝试了很多主题,但到目前为止我还没有在我的项目中这样做。
答案 0 :(得分:1)
您可以使用OpenFileDialog
选择文件并将其传递给ReadXml
。像下面的行可以解决你的问题。
private void metroButton13_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
int size =0;
string file = string.empty;
if (result == DialogResult.OK) // Test result.
{
string file = openFileDialog1.FileName;
try
{
string text = File.ReadAllText(file);
size = text.Length;
}
catch (IOException)
{
}
}
if(size >0)
{
DataSet dataSet = new DataSet();
dataSet.ReadXml(file);
dataGridView1.DataSource = dataSet.Tables[0];
}
else
{
msgbox ("blank file");
}
}
答案 1 :(得分:0)
DataSet dataSet = new DataSet();
OpenFileDialog sfd = new OpenFileDialog();
sfd.Filter = "XML|*.xml";
if (sfd.ShowDialog() == DialogResult.OK)
{
string file = sfd.FileName;
try
{
dt.ReadXml(file);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
实际上这段代码解决了我的问题,但你给了我一些思考的东西。无论如何,谢谢你!