DataSet ds = new DataSet();
SqlCeDataAdapter sda = SqlCeDataAccess.MyAdapter("select * from Tab1 where line2='" + textBox6.Text + "'");
sda.Fill(ds,"Tab1");
int cnt_temp = int.Parse(ds.Tables["Tab1"].Rows[1]["line"].ToString()) + 1;Tab1表内有4行数据line2是Tab1中的唯一标识列,调试运行中将select语句放入查询分析器搜索出一条语句,但是在执行第三行的时候却没有报错,费解!Rows属性内count值是4,为什么?

解决方案 »

  1.   

    既然count值是4,那肯定是你查询出了4行数据了,你再设置断点获取你的程序中的查询语句,再执行看看是不是返回四条语句。难道有缓存的数据?
      

  2.   

    首先你在查询分析器里面查看一下你的sql 语句执行完后,到底有多少条记录;  然后你可以foreach 一下所有的纪录看看数据是否真实
      

  3.   

    我看了,查询出的4行数据就是Tab1中的4行数据,不是其他的,
      

  4.   

    int cnt_temp = int.Parse(ds.Tables["Tab1"].Rows[1]["line2"].ToString()) + 1; 少写了个2
      

  5.   

    line2是Tab1中的唯一标识列,调试运行中将select语句放入查询分析器搜索出一条语句,但是在执行第三行的时候却没有报错,费解哦,上面看错了。。报的什么错?
      

  6.   

    没有报错,按说搜索唯一标识列出来应该只有一行,但是现在ds.Tables["Tab1"].Rows[1]["line"].ToString())这样写都没有提示错误,按说应该提示在Rows[0]处没有值的,现在却显示的出来值,而且是第二行的值(如果是rows[0]的话是第一行的值,也就是说,把所有行的值全取出来了,一共是4行)。谁能给解释下?
      

  7.   

    真是不明白楼主的想法
    既然line2是唯一标识列,不管tab1中有几行数据都最多只能出来一行,你要取第二行当然出错
      

  8.   

    把数据都输出来看一下就知道了,我估计是存在重复数据:
    foreach(DataRow dr in ds.Tables["Tab1"].Rows)
    {
     this.textBox1.Text+=dr["line"].ToString()+"\r\n";
    }
      

  9.   

    在select语句执行完之后感觉就像没有where限制一样,直接select * from Tab1出来的结果一样。很纳闷
      

  10.   

    我自定义的类中就是用的SqlDataAdapter
      

  11.   

    MyAdapter这个方法发出来看一下啊。。
      

  12.   

    public static SqlCeDataAdapter MyAdapter(string cmdString)
            {
                SqlCeConnection myConnection = new SqlCeConnection(myConnString);
                if (myConnection.State != ConnectionState.Open)
                {
                    myConnection.Open();
                }
                SqlCeDataAdapter myAdapter = new SqlCeDataAdapter(cmdString, myConnString);
                myConnection.Close();
                return myAdapter;        }
      

  13.   

    我草。。KO了。
    才发现,在4000多行以前有个地方用了DataSet ds = new DataSet();一次没释放我昏
      

  14.   

    SqlCeDataAdapter类的构造函数呢?另外你可以直接使用SqlDataAdapter,看看结果对不对。。