我做了一个GridView,用获取的DataTable作为数据源,绑定。可是得到的DataTable总是空的,但是绑定后的GridView却显示出很多数据,有对的也有错的……这是为什么呢?获取DataTable的代码如下:
其中sql语句:SqlString="Select * From [User],[Department],[Role]  where [User].DepartmentID = 3 And [UserName] Like '%%'"
        public DataTable GetDataTable(string SqlString)
        {
            Open();
            SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
            DataTable datatable = new DataTable();
            adapter.Fill(datatable);
            Close();
            return datatable;        }

解决方案 »

  1.   

                Open();
      Close();
    首先dataadapter不用显示开关sqlconnectionAnd [UserName] Like '%%'" 
    这什么意思搞不懂??如果是匹配两个字符也应该是下划线啊
    多个字符用一个%号就可以了。与不匹配没区别
      

  2.   

    后面的“ Like '%%'"模糊查询有问题。并且用DataTable应该包含在DataSet里的。  
      

  3.   

    我不大明白Sql的语法。那个And [UserName] Like '%%' 是一个函数生成的,原本是想在%%之间有name这样一个参数实现模糊查询。是这里的问题么?另外,我把 Open()和Close()给注释掉后,报错,说 Fill: SelectCommand.Connection 属性尚未初始化。是哪里的问题呢?
      

  4.   

    不知道你Open()里面还做了什么/最好把代码贴出来。另外你的模糊查询想实现什么功能
      

  5.   

    Open()里面就是打开一个connection。模糊查询是为了将departmentID等于某数值、UserName类似于某string的记录select到datatable中,然后将此Datatable与GridView绑定,显示数据。然而,现在的情况是:我有两组数据,departmentID分别为2 和3. 在查询时,如果限定departmentID为2,则只显示我在数据库中设定DepartmentID为2的数据,但是,却显示出了很多条,每一条都显示了不同的DepartmentID,数据的其他内容基本都正确。另外,我的数据里还有一个RoleID的参数,问题跟DepartmentID一样是哪里的问题呢?
      

  6.   

    Select * From [User],[Department],[Role]  where [User].DepartmentID = 3 And [UserName] Like '%%'有语病吧~~~~ from 哪个表?