string sql = "select xs_cjjd1.th,xs_cjjd1.xsjd,tk.jd from xs_cjjd1,tk where  xs_cjjd1.th=tk.th and xs_cjjd1.zkzh='" + str_ksh + "' order by xs_cjjd1.th";
            myda1 = new SqlDataAdapter(sql, mycon);//创建 连接数据表的 数据适配器            myds1 = new DataSet();//创建数据集
            reccount = myda1.Fill(myds1, "xsjd");//填充数据到数据集myds  并命名为cj
            dataGridView1.DataSource = myds1.Tables["xsjd"];
            recno = 0;
            string th = myds1.Tables["xsjd"].Rows[recno]["th"].ToString().Trim();//出错点,"在位置 0 处没有任何行。"
            showdata(th);请大家帮帮忙,总是这个问题。

解决方案 »

  1.   

    把sql debug,取出来到sql查询器里运行,现在没有查到数据。即 myds1.Tables["xsjd"].Rows.Count == 0 !
      

  2.   

    看到这样的提示,第一反应就是 sql 写错了。
      

  3.   

    首先,你的表和字段为什么不能用些有意义的单词来表示。
    其次,你应该用 join 来连接两张表。
      

  4.   

    string th = myds1.Tables["xsjd"].Rows[0][0].ToString().Trim();
    呢?
      

  5.   

    先看看  myds1.Tables["xsjd"].Rows.Count 的值是多少.
      

  6.   

    你能保证用那条SQL语句一定能找到数据吗?
      

  7.   

    单步调试,把拼出来的SQL语句放到查询分析器执行下看看能不能返回数据先
      

  8.   

    把sql debug,取出来到sql查询器里运行,现在没有查到数据。
      

  9.   

    调试的时候取SQL的完整语句放到数据库中查查看有没有记录
      

  10.   

    取数据之前判断下myds1.Tables["xsjd"] != null && myds1.Tables["xsjd"].Rows.Count != 0
      

  11.   

    1、你先确认下你的SQL是否正确。
    2、确定你SQL执行后返回是否有结果集
      

  12.   


        s = "server=.;database=valeb;user id=sa;pwd=";//连接数据库的字符串computer_test
                mycon = new SqlConnection(s);//创建连接
                mycon.Open();//打开连接
                string sql = "select * from cjgl where zkzh='" + str_ksh + "'";
                myda = new SqlDataAdapter(sql, mycon);//创建 连接数据表的 数据适配器
                myds = new DataSet();//创建数据集
                int x = myda.Fill(myds, "va");//填充数据到数据集myds  并命名为zkzh
                label6.Text = myds.Tables["va"].Rows[0]["xm"].ToString(); //出错点,
                str_yzdm = myds.Tables["va"].Rows[0]["xm"].ToString().Trim();//得到语种
                myds.Dispose();
                myda.Dispose();