ASP.NET动态创建DataTable及数据填充技巧
需积分: 50 46 浏览量
更新于2024-09-13
收藏 1KB TXT 举报
本文将介绍如何在ASP.NET中动态创建`Table`对象并进行赋值。这个过程通常在处理数据库数据或构建动态数据显示时非常有用。
在ASP.NET中,我们可能需要根据不同的业务需求动态地创建数据表结构,并填充数据。在给定的示例中,开发人员首先执行了一个SQL查询,获取了名为`T_signInfo`表的前六条记录,然后使用这些数据创建一个新的`DataTable`对象。
```csharp
string sqlStr2 = "select top 6 * from T_signInfo";
DataTable dt2 = DataBase.GetTable(sqlStr2);
```
这里的`DataBase.GetTable(sqlStr2)`方法是一个自定义方法,用于执行SQL查询并返回结果集作为`DataTable`。你可以替换为ADO.NET中的`SqlCommand`和`SqlDataAdapter`,或者其他ORM框架如Entity Framework的相应方法来实现相同功能。
接下来,创建一个新的空`DataTable`对象`dt`,并定义其列结构:
```csharp
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Columns.Add(new DataColumn("phone", typeof(string)));
dt.Columns.Add(new DataColumn("Brand", typeof(string)));
dt.Columns.Add(new DataColumn("Model", typeof(string)));
```
这里定义了四列,分别对应姓名(Name)、电话(phone)、品牌(Brand)和型号(Model),并且指定了每列的数据类型为字符串。
然后,遍历`dt2`中的每一行数据,创建新的`DataRow`对象并填充`dt`:
```csharp
for (int i = 0; i < dt2.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
// 根据性别的不同,处理Name字段
if (dt2.Rows[i]["sex"].ToString() == "Ü")
{
dr["Name"] = BaseHandle.GetContentString(dt2.Rows[i]["Name"].ToString(), 1, false) + "Üʿ";
}
else if (dt2.Rows[i]["sex"].ToString() == "")
{
dr["Name"] = BaseHandle.GetContentString(dt2.Rows[i]["Name"].ToString(), 1, false) + "";
}
// 隐藏电话号码的一部分,用星号(*)替换
dr["phone"] = BaseHandle.GetContentString(dt2.Rows[i]["PhoneNum"].ToString(), 3, false) + "";
// 直接复制Brand和Model字段
dr["Brand"] = dt2.Rows[i]["Brand"].ToString();
dr["Model"] = dt2.Rows[i]["Model"].ToString();
// 将新行添加到dt
dt.Rows.Add(dr);
}
```
这段代码中,`BaseHandle.GetContentString`方法用于处理数据,可能是为了格式化或加密等目的。在电话号码处理部分,它隐藏了电话号码的一部分,将其替换为星号。性别处理部分则根据`sex`字段的值对`Name`字段进行特殊处理。
最后,将填充好的`DataTable`绑定到`Repeater2`控件,以便在网页上显示:
```csharp
Repeater2.DataSource = dt;
Repeater2.DataBind();
```
`Repeater`控件在ASP.NET中常用于动态生成HTML,它可以基于数据源生成重复的模板元素,非常适合显示列表或表格数据。
总结来说,这个示例展示了在ASP.NET中如何动态创建`DataTable`、处理数据以及将其绑定到用户界面组件的过程。在实际开发中,你可以根据具体需求调整列定义、数据处理逻辑以及数据绑定方式。
2013-02-01 上传
2014-06-28 上传
2023-05-28 上传
2023-11-08 上传
2023-05-24 上传
2023-05-09 上传
2023-09-14 上传
2023-05-31 上传
黄昏de守候者
- 粉丝: 0
- 资源: 1
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦