当前位置:编程学习 > C#/ASP.NET >>

为什么绑定后却一条记录都显示不出来?

sql ="select * from Products where PrdName like '*0.3*' order by Uptime desc";


我用这条 SQL 语句 在 ACCESS 数据库里可以选出记录来,

可是用常规的绑定到 DataGrid 里却一条记录都没显示出来,我很纳闷,为啥?


void bindList()
{
string sql;

sql ="select * from Products where PrdName like '*0.3*' order by Uptime desc";
  
db=new DataBase();

db.OpenConn();//这里打开数据库联接

this.DataGrid1.DataSource=db.RunSqlReturnDataSet(sql);
this.DataGrid1.DataBind();

db.DisposeConn();这里释放数据库链接
}



public DataSet RunSqlReturnDataSet(string Sql)
{
DataSet ds=new DataSet();

if(this.Conn==null)
{
this.setConStr();
this.OpenConn();
}

OleDbDataAdapter dap=new OleDbDataAdapter(Sql,this.Conn);
            dap.Fill(ds);
dap.Dispose();


return ds;

}
--------------------编程问答-------------------- 好像需要绑定到table吧
返回值是不是要改回DataTable

public   DataTable RunSqlReturnDataSet(string   Sql)  --------------------编程问答-------------------- 晕...跟这个有关系? --------------------编程问答-------------------- 没有,自己跟下程序就知道了 --------------------编程问答-------------------- 晕...跟不出来啊? --------------------编程问答-------------------- dap.Dispose(); 
这个不需要,DataAdapter可以自己释放的。

1 你应该使用调试逐步执行跟踪看看,
建议断点设置在这里。
OleDbDataAdapter   dap=new   OleDbDataAdapter(Sql,this.Conn); 
                        dap.Fill(ds); 

2 如果实在找不出原因建议通过datagrid直接绑定数据库。在datagrid右上的快捷菜单中绑定。默认情况可以显示全部数据。如果你还需要实现更多的查询,可以在dataset对象的设计视图中添加Adapter的配置。 --------------------编程问答-------------------- 如果全部数据选出来绑定倒是没问题,就是选"like"这种的SQL语句就没记录,可是在数据库里却能显示出来结果,真是纳闷 --------------------编程问答-------------------- sql   = "select   *   from   Products   where   PrdName   like   '*0.3* '   order   by   Uptime   desc "; 

改为:
string a = "0.3";
sql   = "select   *   from   Products   where   PrdName   like   '*”+a+“* '   order   by   Uptime   desc "; 
试试。 --------------------编程问答-------------------- this.DataGrid1.DataSource=db.RunSqlReturnDataSet(sql).DefaultView;
--------------------编程问答-------------------- 是要放在dataTable里的
我是初学 不是很能看懂别人写的风格 但是我帮定的时候都是打开数据库后~
db.adp.Fill(db.ds,"PrdName")
this.DataGrid1.DataSource=db.ds.Table["PrdName"];
this.DataGrid1.DataBind;
要先把数据放到dataTable里才能绑定到dataGrid1,dpdownlist....里 --------------------编程问答-------------------- ds.Table[0] 先看看这个table有数据没。有的话。
this.DataGrid1.DataSource=db.ds.Table[0]; 
this.DataGrid1.DataBind();
肯定应该没啥问题了。
--------------------编程问答-------------------- 以上方法均试过,都不行 --------------------编程问答-------------------- DataSource 可以是DataSet或支持IList接口的东东

如果使用DataSet做为DataSource,请设置DataMember属性为需要显示的DataTable名称 --------------------编程问答-------------------- 如果以上的方法都不行的话,你就换个思路.
也许是你的DataGrid1设置有问题. --------------------编程问答-------------------- sql ="select * from Products where PrdName like '%0.3%'  order by Uptime desc";

这样就可以了,不知道为什么,是不是.NET编译的问题而不认"*"号?

可是"*"号在ACCESS里却是通配符啊 --------------------编程问答-------------------- 自己监视一下看看 dataset 中是不是有数据.没有就是sql的问题吧
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,