关于xml文档与ADO.net数据的转换问题

这是我在资料中看的代码,自己做了一些修改,所有代码都贴出来了,希望大侠给做个测试,看看问题到底处在哪。谢谢两个问题:一:每次选择listView1中的元素时都是出现Not... 这是我在资料中看的代码,自己做了一些修改,所有代码都贴出来了,希望大侠给做个测试,看看问题到底处在哪。谢谢
两个问题:
一:每次选择listView1中的元素时都是出现Not found提示,为什么?
二:第一次点击listView1中的元素时只出现一次提示,再点击另一个时会出现两次提示,即引发了两次Example_SelectedindexChanged事件,为什么?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Data.SqlClient;
using System.IO;

namespace xml_ADO.net
{
public partial class Form1 : Form
{
private XmlDocument doc = new XmlDocument();
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
listView1.SelectedIndexChanged += new EventHandler(Example_SelectedindexChanged );
DataSet ds = new DataSet("XMLAuthors");
SqlConnection conn = new SqlConnection("server=(local); integrated security=SSPI;database=Northwind");
SqlDataAdapter da = new SqlDataAdapter("select * from categories ",conn );
MemoryStream memstrm = new MemoryStream();
StreamReader strmRead = new StreamReader(memstrm );
StreamWriter strmWrite = new StreamWriter(memstrm );
da.Fill(ds,"Authors");
dataGridView1.DataSource = ds.Tables[0];
ds.WriteXml(strmWrite ,XmlWriteMode.IgnoreSchema );
memstrm.Seek(0, SeekOrigin.Begin);
doc.Load(strmRead);
doc.Save("mm.xml");
XmlNodeList nodelst = doc.SelectNodes("//CategoryName");
foreach (XmlNode nd in nodelst)
listView1.Items.Add(nd.InnerText );
}
private void Example_SelectedindexChanged(object sender,EventArgs e)
{
string srch = "/XMLAuthors/Authors[CategoryName= " + "'+ listView1.SelectedItems.ToString() + '" + "]";
XmlNode foundNode = doc.SelectSingleNode(srch );
if (foundNode != null)
MessageBox.Show(foundNode.OuterXml);
else
MessageBox.Show("Not found");

}
}
}
展开
 我来答
huangf3958
2008-11-13 · 超过47用户采纳过TA的回答
知道答主
回答量:164
采纳率:0%
帮助的人:141万
展开全部
(1) -- 你的xpath有问题,建议你找找xpath教程看看
(2) -- 事件是可以叠加绑定的,你不知道吗?
listView1.SelectedIndexChanged += new EventHandler(Example_SelectedindexChanged );
你点2次就绑定了2次事件,事件处理函数就调用2次
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式