首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

DataTable修改列值解决思路

2012-05-30 
DataTable修改列值C# code/*比如:在数据库中查询一个DataTable的数据是这样Name Url CreateTime 百度 www.

DataTable修改列值

C# code
/*比如:在数据库中查询一个DataTable的数据是这样Name Url CreateTime 百度 www.baidu.com 2012-5-29 15:49:27 新浪 www.sina.com 2012-5-29 15:49:27 谷歌 www.google.com 2012-5-29 15:49:27 我想在绑定之前将url这一列所有行追加http://,在不循环DataTable的情况下 可以实现吗想要的结果:百度 http://www.baidu.com 2012-5-29 15:49:27 新浪 http://www.sina.com 2012-5-29 15:49:27 谷歌 http://www.google.com 2012-5-29 15:49:27 */


[解决办法]
第一可以通过sql
select Name 'http://'+Url as NewUrl,CreateTime from xxx

第二可以通过GridView1_RowDataBound事件,对这一列加上http,比如
C# code
  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)  {      if (e.Row.RowType == DataControlRowType.DataRow)      {          e.Row.Cells[0].Text = "http://" + e.Row.Cells[0].Text;      }  }
[解决办法]
var list=dt.AsEnumerable().Select(t=>new
{
Name=t.Field<string>("Name"), 
Url=t.Field<string>("Url").StartWith("http")?t.Field<string>("Url"):"http://"+t.Field<string>("Url"),
CreateTime =t.Field<DateTime>("CreateTime ")
});
[解决办法]
正解:
探讨
第一可以通过sql
select Name 'http://'+Url as NewUrl,CreateTime from xxx

第二可以通过GridView1_RowDataBound事件,对这一列加上http,比如

C# code


protected void GridView1_RowDataBound(object sender, GridViewRowEve……

[解决办法]
CreateTime =t.Field<DateTime>("CreateTime ")
这个字段是否为datatime格式,如果不是,改成string

热点排行
Bad Request.