还是不行:如何把英文列名自动显示成中文?

MasterLRC 2003-08-21 03:07:27
请教各位大侠,我在用ASP.net 做数据库时有以下问题:
数据库中有一“Sys_Tab“表,表中存储所有表的所有字段的信息。其结构如下:

列名 类型 说明

tab_name char40 表名 主
tab_id int4 表ID号
col_name varchar 列名
col_china_name varchar 列中文名
col_type int4 列类型
col_len int4
col_id int 主
col_pk char 1
col_fk char 1
col_ok char 1
tab_china_name varchar
col_index char 1
col_null int 4

请问如何在调用并显示某个表时,自动读取“Sys_Tab 表“把表的列名显示成中文。


上次的贴子如下:
回复人: CrazyFor(太阳下山明朝依旧爬上来) ( ) 信誉:262 2003-8-19 12:04:28 得分:0



中方在哪里得到呢,你至少需要做个对照表,



Top

回复人: MasterLRC(但丁) ( ) 信誉:100 2003-8-19 12:06:55 得分:0



Sys_Tab.col_china_name就是了。



Top

回复人: happy_0325(快乐) ( ) 信誉:100 2003-8-19 12:07:36 得分:0



up,



Top

回复人: MasterLRC(但丁) ( ) 信誉:100 2003-8-19 12:09:57 得分:0



对照表 Sys_Tab 就是了,可是我不知道怎么对所有的表实现自动中文列名,用存储过程行吗?如果行请指点,多谢!



Top

回复人: zjcxc(邹建) ( ) 信誉:100 2003-8-19 12:24:29 得分:50



那要用,在查询时生成SQL语句的方法:

比如:
显示表:aa

declare @sql varchar(8000)
set @sql='select '
select @sql=@sql+'['+col_china_name+']=['+col_name+'],'
from Sys_Tab where tab_name='aa'
set @sql=left(@sql,len(@sql)-1)+' from aa'
exec(@sql)




Top

回复人: zjcxc(邹建) ( ) 信誉:100 2003-8-19 12:26:18 得分:0



做成存储过程就是这样写:
create proc p_show @tbname varchar(250)
as
declare @sql varchar(8000)
set @sql='select '
select @sql=@sql+'['+col_china_name+']=['+col_name+'],'
from Sys_Tab where tab_name=@tbname
set @sql=left(@sql,len(@sql)-1)+' from '+@tbname
exec(@sql)




Top

回复人: hqc(慢跑的风) ( ) 信誉:98 2003-8-19 12:29:08 得分:0



我们的程序一般是在存储过程中直接用as来做,如果有更好的方法当然好,于是关注,呵呵!



Top

回复人: CrazyFor(太阳下山明朝依旧爬上来) ( ) 信誉:262 2003-8-19 12:44:32 得分:20



有什么必要这样做呢?这样做在你的前台读的时候还要用中文,不是很不方便嘛,而且不利于程序移植,



Top

回复人: txlicenhe(不做技术高手) ( ) 信誉:100 2003-8-19 13:15:26 得分:30



1: 在设计表时指定描述,或用sp_addextendedproperty加入字段描述
2:用如下视图

Create view fielddesc
as
select o.name as oname, c.name as cname,convert(varchar(30),p.value) as value,p.smallid as psmallid,t.name as tname
from syscolumns c
join systypes t on c.xtype = t.xtype
join sysobjects o on o.id=c.id
left join sysproperties p on p.smallid=c.colid and p.id=o.id
where o.xtype='U'



Top

回复人: fayifu(fayifu) ( ) 信誉:100 2003-8-19 16:42:16 得分:0



UP



Top

回复人: MasterLRC(但丁) ( ) 信誉:100 2003-8-20 21:36:54 得分:0



多谢各位了,学了不少东东,结帐!



可是当使用 zjcxc(邹建)大哥的方法,我在sql查询分析器中运行:
use wealth_mis
declare @sql varchar(8000)
set @sql='select '
select @sql=@sql+'['+col_china_name+']=['+col_name+'],'
from Sys_Tab where tab_name='comp_coll_cbkpzldj'
set @sql=left(@sql,len(@sql)-1)+' from comp_coll_cbkpzldj'
exec(@sql)
后提示了堆:
服务器: 消息 1038,级别 15,状态 3,行 1
不能使用空白的对象或列名。如果必要,请使用一个空格。
服务器: 消息 1038,级别 15,状态 1,行 1
不能使用空白的对象或列名。如果必要,请使用一个空格。
......
请问各位这是怎么回事?
...全文
132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MasterLRC 2003-08-22
  • 打赏
  • 举报
回复
各位有时间到我的贴子:
http://expert.csdn.net/Expert/topic/2175/2175302.xml?temp=.5742456
给个意见,小弟将感激不尽!
txlicenhe 2003-08-22
  • 打赏
  • 举报
回复
谢了
zjcxc 2003-08-22
  • 打赏
  • 举报
回复
谢谢.
流梓 2003-08-22
  • 打赏
  • 举报
回复
这样试试!
select tab_name as 表名........from Table
CrazyFor 2003-08-22
  • 打赏
  • 举报
回复
:)
acewang 2003-08-21
  • 打赏
  • 举报
回复
不好意思,你这么快就找到错了
acewang 2003-08-21
  • 打赏
  • 举报
回复
zjcxc(邹建)这位大牛写的一般不会出错,你再找找
MasterLRC 2003-08-21
  • 打赏
  • 举报
回复
问题解决,是偶输错表名了。
上次回答的几位大哥,过来再给分!
Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具 : 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据库表 );多种格式的数据导出包括 XLS、CSV、INSERT SQL、HTML、XML[;中英文双语界面[/b]并能切换; 监控批量SQL语句的运行(在运行中可暂停、更正);不需要安装 Oracle 客户端;占用系统资 源极少;能运行于所有的主流平台包括 Windows、Linux、Unix 及 Mac OS;多线程多连接。所有这些 功能特性在同类工具中表现突出,甚至是本工具独有的! 还有,它能快速显示SQL的解释计划;能运行/调试 PL/SQL 语句;精确的错误定位;高效的 语句块操作;SQL格式美化;连接配置简单;自动重新连接;个性化界面设置;界面简洁清爽;操作简便 ;功能实用且全面! 总之,本工具确实 “小巧、实用、方便、高效”,正是 Oralce 数据库开发人员及操作人员所需要 的强有力的工具! 是国产的,很少见吧,用过的人都说非常方便非常实用而且很强大,不逊色于同类的收费软件! 免费的产品, 强大的品质, 您还等什么! 请从如下页面下载最新版本的: http://www.onlinedown.net/softdown/91179_2.htm http://www.duote.com/soft/17069.html#downsite 工具的界面图片如下: http://img.newhua.com/100000/91179.jpg http://img.newhua.com/100000/q91179.jpg 主要功能如下: 将 SELECT 语句的查询结果显示在工作表,可以直接对查询结果进行再操作,如 修改、插入行、删除行、提 交(将表格中的数据改变写入相应的数据库表中)、多功能拷贝、将选择的单元格数据导出为 XLS /CSV /INSERT SQL /HTML /XML 等格式、单条记录操作、能方便地查找\替换单元格中的数据、数值统计、行列移动、 列排序、选择模式切换等;能方便地查看/编辑大型的文本字段(如 CLOB、 LONG) 智能的SQL编辑器:自动弹出提示窗口,列出关键字、关键字组合、函数名、列名、对象名、对象类型、参数 、包内的过程和函数,提高SQL编辑效率。例如: (1)输入字串“sel”,一秒钟后列出以“sel”开头的所有关键字、关键字组合(如 SELECT, SELECT DISTINCT, SELECT * FROM)、函数及对象名; (2)输入字串“abc”+“.”,如果“abc”是一表名/视图,或其别名,则列出表/视图的所有列名及数据类型 ;如果“abc”是一用户名,则列出该用户的所有对象;如果“abc”是一包名,则列出包内的过程和函数; (3)输入字串“grant”+空格,列出所有权限和角色,再输入“on”+空格,列出所有对象,再输入“to”+空 格,列出所有用户名; 彩色的SQL编辑器,增强可读性: (1)关键字、注释块、引号内字符串、操作符、特殊字符等,用不同的彩色字体加以区别; (2)如果光标前面是一个括号,高亮度显示配对的括号 支持批量SQL语句的运行:用监控器监控每条语句的运行,在运行过程中可以中断/暂停/继续正在运行的语句 ,甚至可以更正出错误的语句 方便高效的块操作,以满足特殊需求: (1)“Format SQL” 按钮能将语句块中杂乱语句以缩进的格式进行重新编排,即格式美化; (2)“Explain Plan” 按钮能快速地显示语句的执行计划; (3)“Export” 按钮能将SQL编辑器中的 SELECT 语句块直接导出为 XLS /CSV /INSERT SQL /HTML /XML 等格 式,方便于数据移植、备份、打印及存档等; (4)支持列块操作; (5)加上/去掉注释标记、加上/去掉引号、增加/减少缩进、大小写转换等 运行语句 “desc [user.]objectName[@dbLink]” 或 Ctrl+鼠标点击字串“[user.]objectName[@dbLink] ”,如果是一表名,则能清楚地显示表的列信息(包括列名称、数据类型及长度、默认值、非空)、索引、约束 条件(主键、唯一键、检查键、子表、触发器、外键、甚至外键的外键) 运行语句 “schema [user.]objectName[@dbLink]”,如果是一表名或视图名或物化视图(快照),则显示 其生的脚本/语句 支持 PL/SQL 语句(包括 Procedure、 Function、T

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧