要检测SQLserver库的WJTeacherScore表中有没有包含三个特定字段值的记录,统计其数目。
没有“填充数据集失败”的异常。在SQL中执行查询,产生的单行单列表格如下:
                 count
                   7但是程序中执行显示rcount:0     难道dt.Rows[0]["count"]不是取数据表第0行的count列的值吗?
然后我又把SELECT COUNT(*) AS count  改为SELECT *,在SQL server中查询得到10行,用
int mycount1 = dt.Rows.Count; 显示行数,却不是10而是0.
到底哪里错了??? 谢谢了!
程序段如下:
               
              string mysql = "SELECT COUNT(*) AS count FROM WJTeacherScore WHERE (CourseID = '" + myCourseID + "') AND (TeacherID = '" + myTeacherID + "') AND (InUserID = '" + myStudentID + "')";
                SqlDataAdapter sqldadp=new SqlDataAdapter (mysql,conn);
   
                
                DataTable dt = new DataTable();
                sqldadp.Fill(dt);      
       
           //     int mycount1 = dt.Rows.Count;
                string rcount = dt.Rows[0]["count"].ToString();
                Response.Write("rcount:");
                Response.Write(rcount.ToString());
               

解决方案 »

  1.   

    datatable数据集中的数据为空。
    注意2个地方:一是你读取的数据库中是否存在记录;二是你的连接字符串是否出错
      

  2.   

    Lz把数据表DataTable换成数据集DataSet试试,
     DataSet ds = new DataSet (); 
     sqldadp.Fill(ds); 
     
     //读取结果值
     int mycount1 = dt.Rows.Count; 
     string rcount = ds.Tables[0].Rows[0]["count"].ToString();     看这样是否还有问题,一般DataAdapter填充时填充的数据集,而不是数据表,这一点很容易被忽视掉.