string sqlStr;
            sqlStr = "select * from TBL_AllBookInfo where BookTM='" + BookTM + "'";
            DataBase bookDB = new DataBase();
            SqlConnection conn = bookDB.getDbConnection();
            conn.Open();
            SqlCommand cmd = new SqlCommand(sqlStr, conn);
            
            SqlDataReader dr = cmd.ExecuteReader();
            DataTable TBL_AllBookInfo = dr.GetSchemaTable();            if (dr.HasRows == true)
            {
                //如果已有记录大于1,显示DataGird
                if (TBL_AllBookInfo.Rows.Count > 1)
                {
                    DataSet ds = new DataSet();
                    SqlDataAdapter da = new SqlDataAdapter();
                    da.SelectCommand = new SqlCommand(sqlStr,conn);
                    dr.Close();
                    da.Fill(ds, "TBL_AllBookInfo");
                    dataGrid_Book.DataSource = ds.Tables["TBL_AllBookInfo"];
我想用datagird显示查询出来的数据,用sqlStr = "select * from TBL_AllBookInfo where BookTM='" + BookTM + "'";同样条件下用上面这条语句查询的时候没有问题,但是我只想显示某些字段的时候,如sqlStr = "select BookTM,ISBN from TBL_AllBookInfo where BookTM='" + BookTM + "'";这条语句的时候就不行,不能显示。
哪位知道是怎么回事?

解决方案 »

  1.   

    把sql语句在查询分析器里运行一下,看有没有结果。
      

  2.   

    输出sql语句,直接查询分析器里执行.另:你都已经找出了结果,为什么还又要找一次?============
    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = new SqlCommand(sqlStr,conn);
    dr.Close();
    da.Fill(ds, "TBL_AllBookInfo");
    dataGrid_Book.DataSource = ds.Tables["TBL_AllBookInfo"];
    ============
    上面整段改为
    dataGrid_Book.DataSource = TBL_AllBookInfo ;
    dataGrid_Book.DataBind();
      

  3.   

    应该是绑定的问题,你 select BookTM,ISBN 应该保证和 datagird 上的列数一致.
      

  4.   

    语句肯定是没有问题的,我就是不知道为什么
    sqlStr = "select * from TBL_AllBookInfo where BookTM='" + BookTM + "'";
    执行的时候有显示,但是我用下面的语句的时候没有显示
    sqlStr = "select ISBN from TBL_AllBookInfo where BookTM='" + BookTM + "'";不是很懂...
      

  5.   

    你在查询分析中运行一下。看看你传入的这个值对应isbn字段有没有数据??
      

  6.   

    也许符合你条件的记录中isbn这个字段为null,但是其他字段是有值的
      

  7.   

    怪事,我用
    "select ISBN,BookName,Writer,Language from TBL_AllBookInfo where BookTM='" + BookTM + "'";我发现,只要显示的字段是一个以上,就没有问题,如果我只显示一个字段,就怎么也显示不出来。怪事,哪位给分析分析?
      

  8.   

    dataGrid 的filebound有你查询的一个列吗?