<marquee width=358>欢迎来到月影社区,希望这里可以成为您美丽的梦幻花园,如果你觉得这里好请分享给您的朋友!- wf66.com</marquee> 将月影社区设置为您的首页将月影社区地址加入到您的收藏栏
月影社区时尚音乐音乐查询IP手机许愿之瓶最新更新文件加密访客留言爱音乐
欢迎您,首页 >> 信息中心 >> 如何获得一个表的结构信息

请输入您关键字:


如何获得一个表的结构信息

推荐查看本文HTML版本


最近项目中需要使用ASP.NET制作自定义查询功能,根据表的字段名称与条件建立不同的查询语句,这就需要知道如何通过ADO.NET把一个表的结构显示出来,并绑定到需要显示的控件上,其实ADO.NET已经提供了相应的函数来做到这一点,下面通过详细的代码实例来察看结果。
由于本人通过使用Webservice来返回数据的结果,便制作了GetTableSchema(string sqlStr)函数,详细代码如下:
/// <summary>
/// 名称:GetTableSchema
/// 参数:string sqlStr,前台查询语句
/// 功能:获得表结构
/// 返回值:DataSet [月影社区 http://wf66.com/]
/// </summary>
[WebMethod(EnableSession=true,Description = "获得表结构。")]
public DataSet GetTableSchema(string sqlStr)
{
DataSet ds = new DataSet();
OleDbCommand cmd = new OleDbCommand(sqlStr,conn);
conn.Open();
OleDbDataReader read = cmd.ExecuteReader();
DataTable tb = read.GetSchemaTable();//注意这句话
ds.Tables.Add(tb);
read.Close();
conn.Close();
return ds;
}

当建立好Webservice后,下面需要再前台把相应的表结构字段信息显示到一个
DropDownList中。但是有一个问题要解决的是,我所要查询的表字段信息在建表的时候都采用了英文字段,如何把表的英文字段变为中文字段就需要一个临时的DataSet来转换一下,在临时的DataSet中建立一个临时表来存储字段的中文信息和英文信息的对照关系,通过遍理整个临时表信息来取出相对应的中文字段信息,并回显到前台WebCombo中(注:由于本项目的用户需求原因,我们采用WebCombo代替了开发者的DropDownList)。详细的代码如下:
//CheckBoxList cbl = new CheckBoxList();
//复选框显示方式为纵状,每列现实3条纪录
cbl.RepeatColumns = 3;
//cbl.RepeatDirection = Horizontal;
//建立新的ListItem,存放试图表中的列值
ListItem li = new ListItem();
DataSet d = new DataSet();
DataTable t = new DataTable("t");//建立表t
DataColumn c = new DataColumn();
c.DataType = System.Type.GetType("System.String");
c.ColumnName = "c";
t.Columns.Add(c);
DataColumn c1 = new DataColumn();
c1.DataType = System.Type.GetType("System.String");
c1.ColumnName = "c1";
t.Columns.Add(c1);
DataColumn c2 = new DataColumn();
c2.DataType = System.Type.GetType("System.String");
c2.ColumnName = "c2";
t.Columns.Add(c2);
//r["c"]:列的英文名字r["c1"]:列的中文名字r["c2"]:列的类型
DataRow r;
//通过试图操作Webservice中的GetTableSchema函数来返回表的结构
foreach(DataRow row in us.GetTableSchema("select * from zc_view_kpb").Tables[0].Rows)
{
r = t.NewRow();
r["c"] = row["ColumnName"].ToString();
string colname="";
colname = row["ColumnName"].ToString();
switch (colname) [月影社区 http://wf66.com/]
{
case "KPID":
r["c1"] = "卡片编号";
break;
case "ZJRQ":
r["c1"] = "折旧日期";
break;
case "ZCMLID":
r["c1"] = "资产目录编号";
break;
default:
break;
}
//逐个添加列的名字到复选框中
//cbl是一个CheckBoxList控件,显示表结构所有字段信息,意思是让用户可以选择不同的字段内容并自动生成DataGrid的列信息,供用户浏览,在此不必理会
cbl.Items.Add(new ListItem(r["c1"].ToString(),colname));
//在r["c2"]中存储的内容为字段的类型+英文名称
r["c2"] = row["ProviderType"].ToString()+colname;
t.Rows.Add(r);
}
//生成表,并绑顶到下拉列表
//Wcol为WebCombo控件名称
d.Tables.Add(t);
this.WCol.DataSource = d;
this.WCol.DataMember = d.Tables["t"].ToString();
this.WCol.DataTextField = "c1";
this.WCol.DataValueField = "c2";
this.WCol.DataBind();

到此,我们已经把表的字段信息绑定到了需要的控件上,如果要帮定到DropDownList是同样的道理,大家不妨试一下。

如何获得一个表的结构信息 2006-8-31
转到本主题第:[ 1 ]
相关评论

暂无评论

总计0页 [ ]上一页 下一页
发表评论(揪错)
呢称: * 您尚未登陆,请登录
来自: *
内容:
 

(为防止非法信息,您的言论提交后需要审核才能正常显示)

文学
精品文萃 情感天地 言情小说
网络小说 玄幻小说 悬疑恐怖
武侠小说 古典品谈 外国名著
儿童文学 会员原创 学习园地
杂谈其它
娱乐
爆笑网文 星座占卜 影音动漫
娱乐新闻 影视剧情
诗词
青竹诗歌 个人诗集 宋词雅赏
全唐诗录
新闻
国际新闻 国内新闻 科技新闻
体育新闻
图片
图文专区 艺术长廊 桌面壁纸
精品素材 像素图片
漫画
单幅漫画 爆笑四格 连环漫画
电脑
电脑入门 图形图像 编程开发
游戏
我爱Q宠 最新攻略 最新秘籍
游戏新闻 技巧心得
经济
帕格节电 财经资讯 股市证券
生活
百科知识 外语学院 潮流时尚
健康医疗 宠物花卉 汽车地带
行走天下
美食
面食甜点 家常菜品 药膳食疗
美食天下 烹饪技巧 松辽风味
燕京风味 巴蜀风味 滇黔风味
赣江风味 徽皖风味 闽台风味
齐鲁风味 中州风味 岭南风味
荆楚风味 三晋风味 淞沪风味
苏扬风味 潇湘风味 钱塘风味
民族风味 素斋仿荤
营销
管理杂谈 谈经论道 培训激励
经营战略 职场生涯 公关交际
关于我们版权声明本站导航友情连结作品演示 TOP↑
本论坛言论纯属发表者个人意见,与£月影社区£立场无关。 皖ICP备16024038号-1
禁止发布任何色情/政治/反动相关信息让我们共同来营造一个属于我们的梦幻家园
Copyright ©2001-2006 MoonShadow. All rights reserved.  Version 4.0  Licence 2006.4.2
建站天数:7214天 本站基于ASP+JS构建,完全自主开发,版权归属月影社区 管理员QQ:23165062 Time:14930ms