有时我们会希望在将数据置入DataSet对象后,数据表的名称或字段的名称与数据源不同,假设我们希望其对应关系如下:
数据源 | 置入DataSet对象后 |
pc(数据表名称) | Pricelist(数据表名称) |
编号(字段名称) | ID(字段名称) |
零部件种类(字段名称) | Category(字段名称) |
品牌(字段名称) | Brand(字段名称) |
价格(字段名称) | Price(字段名称) |
日期(字段名称) | Date(字段名称) |
厂商信息(字段名称) | Information(字段名称) |
数据库里的pc表:
效果图:
代码如下:
using System.Data;
using System.Data.OleDb;
protected void Page_Load(object sender, EventArgs e)
{
string connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("DB.mdb");
OleDbDataAdapter da = new OleDbDataAdapter("select * from pc", connstr);
//创建数据表及字段对应
da.TableMappings.Add("pc","pricelist");
da.TableMappings[0].ColumnMappings.Add("编号","Id");
da.TableMappings[0].ColumnMappings.Add("零部件种类","Category");
da.TableMappings[0].ColumnMappings.Add("品牌","Brand");
da.TableMappings[0].ColumnMappings.Add("价格","Price");
da.TableMappings[0].ColumnMappings.Add("日期","Date");
da.TableMappings[0].ColumnMappings.Add("厂商信息","Information");
DataSet ds = new DataSet();
da.Fill(ds, "pc");
DataTable dt = new DataTable();
dt=ds.Tables["pricelist"];
int i, j;
Response.Write("<table border='1'><tr align='center'>");
for (i = 0; i < dt.Columns.Count; i++)
Response.Write("<td>" + dt.Columns[i].Caption + "</td>");
Response.Write("</tr>");
for (i = 0; i < dt.Rows.Count; i++)
{
Response.Write("<tr>");
for (j = 0; j < dt.Columns.Count; j++)
Response.Write("<td>" + dt.Rows[i][j] + "</td>");
Response.Write("</tr>");
}
Response.Write("</table>");
}