做的一个项目,开发语言是asp.net 使用的数据库是access
数据绑定的之前有判断 看dataset是否为空 如果为空则提示数据没有加载进来
跳转页面,如果不为空则绑定
但是有时候浏览的时候,会出现跳转,知道原因是数据没有加载进来
数据量不大,就是有时候访问数据库的次数太多
有没有好一点的办法可以避免这种情况。
期待高人指点,谢了!
数据绑定的之前有判断 看dataset是否为空 如果为空则提示数据没有加载进来
跳转页面,如果不为空则绑定
但是有时候浏览的时候,会出现跳转,知道原因是数据没有加载进来
数据量不大,就是有时候访问数据库的次数太多
有没有好一点的办法可以避免这种情况。
期待高人指点,谢了!
解决方案 »
- office自动话处理,高分求教
- 请问都常用什么UML工具?
- 高原期的反应?
- CreateUserWizardStep 如果再加其他項目應該怎麼加 ??
- detailsview插入后进入Readonly就不能进入编辑状态
- ♀Windows2003Server本地安全设置不起作用♂
- 学好asp.net都要看哪些书?
- #############水晶报表的显示问题##########
- 请问forms认证中,如何使部分页面限制访问,部分不限制访问
- 100分,简单问题,近来瞧瞧吧!~~~
- 图片等比压缩图片?
- 用iis搭建的WEB服务器,如何让用户只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢
你这么做很奇怪
只有判断 有没有 缓存 没有再加载数据的你判断dataset 是为什么呢
放到一个dataset对象中,然后与数据控件绑定
绑定之前判断一下这个对象是否为空,如果为空就给个提示
然后跳转页面。为空证明数据没有加载进来
select count(*) from ...
ds = NewsBLL.GetListByPager(typeId,pageIndex,pageSize);
if (ds != null)
{
gvShow.DataSource = ds;
gvShow.DataBind();
}
else
{
Common.showResult(this, "网络不稳定,请稍候再试!", "index.aspx");
}
就像这样的,如果结果集对象为空,怎给个提示然后跳转页面
偶尔会出现else里面的情况
连接数据库的时候那个命令对象设定了超时时间 command.CommandTimeOut=90;
可能跟连接数量有关系吧,有时候绑定的时候需要访问很多次数据库,才能获得想要的数据!
{
adapter.Fill(ds);
}
catch (Exception ex)
{
ds = null;
}
finally
{
Close();
}
连接数据库的方法都是这样写的 先打开连接,获得数据之后,关闭连接(没有用到sqlDataReader)。
像绑定treeview那样的数据,大家一般是怎么做的?
取一次数据,可能连接了很多次数据库,有没有好一点的方法?
{
string id = "";
string result = "";
StringBuilder builder = new StringBuilder();
DataSet ds = new DataSet();
ds = ProTypeDAL.GetAll(firId);
if (ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
DataSet ds1 = new DataSet();
ds1 = ProTypeDAL.GetAll(Convert.ToInt32(row["id"].ToString()));
if (ds1 != null)
{
if (ds1.Tables[0].Rows.Count > 0)
{
foreach (DataRow row1 in ds1.Tables[0].Rows)
{
DataSet ds2 = new DataSet();
ds2 = ProTypeDAL.GetAll(Convert.ToInt32(row1["id"].ToString()));
if (ds2 != null)
{
if (ds2.Tables[0].Rows.Count > 0)
{
foreach (DataRow row2 in ds2.Tables[0].Rows)
{
builder.Append(row2["id"].ToString() + ",");
}
}
else
{
builder.Append(row1["id"].ToString() + ",");
}
}
}
}
else
{
builder.Append(row["id"].ToString() + ",");
}
}
}
}
}
result = builder.ToString();
return result;
}
就是这个方法,调用一次就会连接很多次数据库。就是传过来一个一级分类编号,获得这个分类下的二级和三级,四级分类编号 有没有好一点的办法,可以一次加载出来想要的数据。
表的结构是这样的
id,parentId,name
但是用的是access数据库 操作表的时候会加锁
然后再查询数据的时候就会查不到数据
不知道高人们都是怎么解决这种情况的?