private void ibtnName_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
string strName=txtName.Text.ToString();
sqlDA1.Fill(dataSet11);
DataView dv=new DataView(dataSet11.Tables["adress"],"姓名='"+strName+"'","姓名",DataViewRowState.CurrentRows);
DataGrid1.DataSource=dv;
DataGrid1.DataBind();
}
这是一个按姓名查询的功能,可是执行完显示找到的记录时同一条记录却会出现2遍,也就是说有重复的记录,不知道是为什么?

解决方案 »

  1.   

    sqlDA1.Fill(dataSet11);你先看看你的sqldal这个绑定的sql语句执行后是什么效果
      

  2.   

    在原来的asp里不能单步跟踪。给程序的调试带来了很大的不便,但是现在有了vs2003或vs2005这样的强大的开发工具,使用单步调试的方法即可解决这个问题。单步调试一下,看一下为什么会出现这个问题,就可以明了了。
    单步跟踪是最好的办法。
      

  3.   

    不是Windows程序,Windows程序可以单步执行,看清问题。Web程序单步执行还是直接出结果,看不到中间过程的。
      

  4.   

    你可以用 SQL 自带的 事件探察器  追踪一下。
      

  5.   

    而且在WEB 中怎么不能单步调试了?
      

  6.   

    sqlDA1.Fill(dataSet11);//应该是这里问题
    DataView dv=new DataView(dataSet11.Tables["adress"],"姓名='"+strName+"'","姓名",DataViewRowState.CurrentRows);//或是这里问题如果你要用条件查询,那么sqlDA1.Fill(dataSet11)相关代码删除应该是可以的
      

  7.   

    不是Windows程序,Windows程序可以单步执行,看清问题。Web程序单步执行还是直接出结果,看不到中间过程的。
    ==================================================
    头一回听说,我的好几个WEB项目都是单步执行测试过来的,怎么会直接出结果呢,是你设置不对吧,看看是不是开Debug了
      

  8.   

    (雨过天晴)兄说到点子上了,是我在Page_Load事件中已经有了sqlDA1.Fill(dataSet11);,然后在这里又填充了一遍,而导致记录重复了,谢谢!
    问题解决了,但我对anheizhizi兄说的用事件察看器来追踪挺感兴趣的,能说一下怎么用吗?
    我觉得Web程序的单步执行看不出效果,它是直接执行的,不像Windows程序那样黄色光标移条条命令移下来,很清晰的。不知道是不是因为像(会走路的鱼)兄说的由于Debug的原因。我不懂,想听听大家看法,多学学,我比较菜。
    谢谢!
      

  9.   

    SQL 自带的  事件探察器,用来追踪与SQL的交互的。打开 企业管理器->工具  里面就有而且 WEB 项目也是可以 单步调试的。WEB。CONFIG 中打开 DEBUG,调试设置那里也要改一下。楼主自己试试