首页 新闻 赞助 找找看

字符串替换!

0
悬赏园豆:20 [已关闭问题]

表名:XXX_table

字段有:id    date

 

string cc="<table><tr><td>{:id:}</td><td>{:id:}</td></tr></table>"

 

我如何能把数据库里面对应的字段id  date 替换 到{:id:}和{:date:} 啊?加急。。。

问题补充: 比如数据是 ________________________ | id | date | ---------|---------------- | | 1 | 2009-10-15| | 2 | 2033-03-25| | 3 | 2004-01-14| | 4 | 2002-12-18| |_______|_______________| 这段字符串里面的字段“{:*:}”的个数是不确定的,这个“{:id:}”字符串中的"id"也是对应表里面的,也是不确定的东西,综合上述,这个生成Grid的计划该怎么实现呢?
aha17的主页 aha17 | 初学一级 | 园豆:180
提问于:2010-04-29 19:47
< >
分享
其他回答(3)
0

你先把数据库中的数据取出来,比如取出后放在DataTable1中。可以使用如下代码:

StringBuilder cc=new StringBuilder();

cc.Append("<table>") ;

foreach(DataRow row in DataTable1)

{

    cc.AppendFormat("<tr><td>{0}</td><td>{1}</td></tr>",row["id"],row["date"]);

}

cc.Append("</table>");

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2010-04-29 21:35
谢谢你,不过我没有完全说清楚,这个{:id:}和{:date:}都是不确定的字段,也有可能是{:Name:}以及其他的,字段的个数也是要计算出来的,要取出cc里面的{:id:}再去替换成XXX_table.rows[i][id];这样该怎么实现呢?谢谢你的回答。
支持(0) 反对(0) aha17 | 园豆:180 (初学一级) | 2010-04-29 22:42
0

你就的应该就是这个意思:

DataTable dtTemp = new DataTable();//获取数据表XXX_table
StringBuilder dtStr = new StringBuilder();//建议使用StringBuilder,数据量大的时候效率高。
dtStr.Append("<table>");
foreach (DataRow drTemp in dtTemp.Rows)
{
    dtStr.Append("<tr>");
    foreach (DataColumn coTemp in dtTemp.Columns)
    {
        dtStr.Append("<td>" + drTemp[coTemp] + "</td>");
    }
    dtStr.Append("</tr>");
}
dtStr.Append("</table>");

Astar | 园豆:40805 (高人七级) | 2010-04-29 21:41
谢谢你的回答,我对本问题进行了补充,期待您的回答,谢谢。
支持(0) 反对(0) aha17 | 园豆:180 (初学一级) | 2010-04-29 22:50
@吕文凯:已经修改
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-04-30 08:27
0

每一行这样处理:r.Columns.Foreach( c => strResult = strResult.Replace("{:"+c.ColumnName+":}",r[c.ColumnName].Value));就可以了。外面再套一个循环处理DataTable的所有行。

直接在这里写的,也很久没用DataTable了,所以错误可能难免,关键是表达个意思,呵呵。

追萝驴 | 园豆:281 (菜鸟二级) | 2010-04-30 04:19
0

建议使用 StringTemplate 开源项目,下面是这个项目的网站。

http://www.stringtemplate.org/

周巍 | 园豆:735 (小虾三级) | 2010-05-10 14:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册