急用!! 代码优化、、

DanSir 2012-05-16 05:58:09
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}

private void Bind()
{
int id = Convert.ToInt32(Request.QueryString["id"]);
//显示发布任务的详细信息
DataTable dt = using_bll.selectByTaskID(id);
string content = "";
foreach (DataRow dr in dt.Rows)
{
content = Convert.ToString(dr[0]);
}
this.TB_requre.Text = content;

//显示留言信息
DataTable chat_dt = using_bll.selectChatByTaskid(id);
this.DL_show.DataSource = chat_dt;
this.DL_show.DataBind();

//显示提交任务这的详细信息
DataTable summit_dt = using_bll.showSummiter(id);
this.DL_img.DataSource = summit_dt;
this.DL_img.DataBind();

}


这是我在页面加载是写的代码,有三个数据控件需要绑定数据。。两个DataList 一个GridView

怎样实现一次性绑定呢。。优化代码呢、、
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DanSir 2012-05-16
  • 打赏
  • 举报
回复
难道是要把三个写在一个存储过程里,然后返回来一个包含三个数据信息的DataTable
DanSir 2012-05-16
  • 打赏
  • 举报
回复
技术老师说三次绑定需要访问三次数据库、效率低、怎样做到所有的数据都能显示,并且不用多次访问数据库,最好是一次搞定、、
弘毅致远 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
有几句可以改为:

C# code


//string content = "";
//foreach (DataRow dr in dt.Rows)
//{
// content = Convert.ToString(dr[0]);
//}
this.TB_requre.Text = d……
[/Quote]
楼上的代码严谨,其他没什么优化。
习惯就好 2012-05-16
  • 打赏
  • 举报
回复


对的。

string content = "";
foreach (DataRow dr in dt.Rows)
{
content = Convert.ToString(dr[0]);
}
this.TB_requre.Text = content;

就取出1条数据的话,为什么要foreach

yuji821 2012-05-16
  • 打赏
  • 举报
回复
没有可大的优化,只能优化的sql语句

foreach (DataRow dr in dt.Rows)
{
content = Convert.ToString(dr[0]);
}
改成
if (dt.Rows.Count > 0)
{
content = dt.Rows[0][0].ToString();
}

//显示发布任务的详细信息
DataTable dt = using_bll.selectByTaskID(id);
这个应该返回一个 string就行了,不需要datatale
insus 2012-05-16
  • 打赏
  • 举报
回复
有几句可以改为:

//string content = "";
//foreach (DataRow dr in dt.Rows)
//{
// content = Convert.ToString(dr[0]);
//}
this.TB_requre.Text = dt.Rows[0][0].ToString(); // content;


另外下面这句:

int id = Convert.ToInt32(Request.QueryString["id"]);

最好移出void Bind()方法,放入Page_Load之内,还要判断它是不是为空,然后再使用Convert.ToInt32

int id;
protected void Page_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Request.QueryString["id"]))
id = Convert.ToInt32(Request.QueryString["id"]);
else
//throw ....

if (!IsPostBack)
{
Bind();
}
}

private void Bind()
{
// int id = Convert.ToInt32(Request.QueryString["id"]);
// other code
}

tan598121925 2012-05-16
  • 打赏
  • 举报
回复
没什么可优化。
dalmeeme 2012-05-16
  • 打赏
  • 举报
回复
除了语句外,没多大可优化的。
本程序的官方演示地址:http://www.cnhww.com/diy --------------------------------------------- ASP在线攒机**台使用说明 ASP在线攒机**台是恒伟网络开发的一套方便用户在线模拟攒机的ASP程序,此程序可以让用户在网上,根据自己的喜好,选择计算机的各种硬件配置,然后就把相关配置的具体内容、价格、数量、总价等显示出来,并可随时打印。程序拥有独立的后台支持,管理员可以很方便地对程序的大类、详细产品等进行管理,是计算机类网站、IT数码、硬件装机等网站不可缺少的程序! 程序均经过代码多次优化处理,占用资源少,运行速度快,管理员可以方便地在后台进行管理。 一、后台地址: diy/admin/index.asp 默认管理帐号 admin 密码 cnhww.com 登陆后请修改管理员默认密码。 二、数据库文件位于根目录下的db.asp文件,修改数据库名称请同时修改根目录 下的conn.asp中的db="db1.asp" 一行及admin/common目录下的conn.asp文件中 的db=".././db1.asp" 一行,修改db1.asp文件为你的数据库名称即可 后台管理 二、大类管理:登陆后台选择“攒机类别管理--攒机大类管理”可对计算机配件的各大类别进行管理,包括添加、修改、删除等操作。大类管理中分别有大类名称、大类小图、排序ID选项,其中大类小图可为空。   “分类排序”功能可以对大类在前台的显示顺序进行排列,直接更改数字即可,数字小的在前排列,   注:删除大类操作将同时删除此大类下的所有商品! 三、小类管理:添加小类前首先要选择商品大类。选择大类后会显示出此大类下的所有配置列表,可以在下面对此列表进行添加、修改、删除等操作。小类中包括配置的名称、价格、排序等。同时前台显示的的顺序也是在此进行排列的 四、系统管理 可以添加新的管理员帐号。可以对原有帐号进行修改、删除操作   管理员帐号在数据库中是经过MD5加密的。请保管好自己的帐号信息。 五、程序配有恢复管理员默认帐号和密码工具,管理员如果忘记后台管理帐号,此工具可以帮你恢复为默认的帐号及口令,以备急用。 六、更多内容敬请关注官方网站: www.cnhww.com 业务电话 技术支持: 81447932

62,268

社区成员

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

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

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

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