【发布时间】:2020-07-17 12:36:34
【问题描述】:
我对 c# 很陌生,似乎无法找到正确的答案
我有以下 xml 结构(元素数量不同)
<config>
<extras>
<dir_update>C:\extension\update.exe</dir_update>
</extras>
<connection_MAIN>
<ip>LOCALHOST,1433</ip>
<bd>DATA</bd>
<user>sa</user>
<password>gzqs=</password>
</connection_MAIN>
<connection_LOBBY>
<ip>10.0.0.2,1433</ip>
<bd>DATA</bd>
<user>sa</user>
<password>I/wqqZIgzqs=</password>
<caixa>5yIz5GPu80s=</caixa>
<printer>cARrmGLQlztLiUDxIJqoPkvJabIiyI9ye4H7t+4muYk=</printer>
</connection_LOBBY>
<connection_FRONT>
<ip>10.0.0.5,1433</ip>
<bd>FIELDS</bd>
<user>sa</user>
<password>I/wqqZIgzqs=</password>
</connection_FRONT>
</config>
我已经在我的组合框中获得了以“connection_”开头的元素,当我在组合框中选择连接时,我想要<ip>、<bd>、<user> 和<password> 中的值。
我遇到的问题是它返回的是单词本身而不是下面代码中的值
private void Form1_Load(object sender, EventArgs e)
{
using(DataSet ds = new DataSet())
{
ds.ReadXml(textBox1.Text);
foreach(DataTable dt in ds.Tables)
{
if (dt.ToString().Contains("conection_"))
{
comboBox1.Items.Add(dt.ToString().Replace("conection_", ""));
}
}
comboBox1.SelectedIndex = 0;
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
using(DataSet ds = new DataSet())
{
ds.ReadXml(textBox1.Text);
string v = comboBox1.Text.ToString();
string ip = ds.Tables[$"conection_{v}"].Columns[0].ToString();
}
}
在本例中,当我选择组合框中的第一个选项时,变量 ip 正在获取值“ip”并且我想要“LOCALHOST,1433”。
我还想按名称(“ip”、“bd”)搜索列值,但我似乎只在使用 Columns[0]、Columns[1] 时才能得到结果。
我遵循了一些我环顾四周的指南,但它们似乎不适用于这种 xml 格式,或者我看错了。
感谢任何帮助。
【问题讨论】:
标签: c# xml datatable combobox dataset