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
------解决方案--------------------------------------------------------