帮忙优化个函数!更ADO.NET有关得!

zmy2k 2004-04-24 05:06:17
private DataTable query_table(int id)
{
SqlDataAdapter adapter = new SqlDataAdapter("select * from relation_view where id="+id,
"server=devserver;database=treeview;uid=sa;pwd=elara");
DataSet ds =new DataSet();
adapter.Fill(ds);
DataTable table = ds.Tables[0];
foreach (DataRow row in table.Rows)
{
this.table_name = System.Convert.ToString(row["rel_map_name"]) ;
}

//Response.Write("<script>alert('"+this.table_name+"')</script>");

SqlDataAdapter adapter_parent = new SqlDataAdapter("select name from system_menu where parentid=0 and id <(select id from relation_view where id="+id+")",
"server=devserver;database=treeview;uid=sa;pwd=elara");
DataSet ds_parent =new DataSet();
adapter_parent.Fill(ds_parent);
DataTable table_parent = ds_parent.Tables[0];
foreach (DataRow row_parent in table_parent.Rows)
{
this.petro_name = System.Convert.ToString(row_parent["name"]) ;
}

//Response.Write("<script>alert('"+this.petro_name+"')</script>");

//System.Data.DataTable table_detail = new

if (this.table_name != null )
{

}
else
{
this.table_name ="yqc";
}

SqlDataAdapter adapter_detail = new SqlDataAdapter("select * from sde."+this.table_name+" where ssdwmc='"+this.petro_name+"'",
"server=devserver;database=petro;uid=sa;pwd=elara");
DataSet ds_detail =new DataSet();
adapter_detail.Fill(ds_detail);
DataTable table_detail = ds_detail.Tables[0];

//}


return table_detail;

}

上面得函数主要是实现得功能是:根据输入得参数从TREEVIEW库中查询出"this.petro_name","this.table_name"
再组合成SQL语句,从数据库PETRO中查询满足条件得数据入DATAGRID
问题一:帮忙优化下主要都ADO.NET方面;
问题二:
private void Page_Load(object sender, System.EventArgs e)
{
if (Request.QueryString["type"]!=null && !IsPostBack)
{
this.list_id = System.Convert.ToInt16(Request.QueryString["type"]);

this.DataGrid1.DataSource =query_table(this.list_id);
this.DataGrid1.DataBind();



}
}
数据绑定到DATAGRID后,分页也设置了,看到得分页得提示"1,2,3,..."
但点了没有翻页.怎么回事?
...全文
48 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmy2k 2004-04-26
  • 打赏
  • 举报
回复
绑定的问题已经解决了!谢谢!
麻烦在帮忙看看第一个问题!
zh_zh_y 2004-04-25
  • 打赏
  • 举报
回复
喔,忘了说明了,BindGrid(); 是自己申明的函数,只是告诉你必须要进行数据重新绑定,函数用你自己的就行了。

this.DataGrid1.DataSource =query_table(this.list_id);
this.DataGrid1.DataBind();
你加上上面两句就行了。

必须要重新查询后,再绑定。
仅仅只有this.DataGrid1.DataBind()是不行的。
zmy2k 2004-04-25
  • 打赏
  • 举报
回复
up
zmy2k 2004-04-24
  • 打赏
  • 举报
回复
没看到有BindGrid(); 呢
用this.DataGrid1.DataBind();。点了则没显示了啊
zh_zh_y 2004-04-24
  • 打赏
  • 举报
回复
是啊,这里必须重新绑定,否则不会发生改变。
zmy2k 2004-04-24
  • 打赏
  • 举报
回复
BindGrid(); //在这里需要重新绑定数据
是DATAGRID得吗?
zh_zh_y 2004-04-24
  • 打赏
  • 举报
回复
查询没有问题的话,那就是你没有设置DataGrid1_PageIndexChanged事件

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
BindGrid(); //在这里需要重新绑定数据
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧