日期:2014-05-17  浏览次数:20459 次

急用!! 代码优化、、
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

怎样实现一次性绑定呢。。优化代码呢、、

------解决方案--------------------
除了语句外,没多大可优化的。
------解决方案--------------------
没什么可优化。
------解决方案--------------------
有几句可以改为:
C# code

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

------解决方案--------------------
没有可大的优化,只能优化的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
------解决方案--------------------


对的。

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

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


------解决方案--------------------
探讨
有几句可以改为:

C# code


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