带下标的数据如何保存到SQL SERVER数据库中?

Lizzy莲 2010-12-16 03:20:31
SQL SERVER 2005 我有个字段想保存带下标的数据,如M2(后面的2是下标),数据类型是nvarchar(50),用nvarchar来保存带上标的数据是可以保存的(如mg/m²),求保存带下标的数据该如何保存?(如谁解决了,另开100答谢,分不多,请见谅,谢谢)
是我数据类型的原因吗?还是别的数据类型可以保存?

...全文
707 32 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lizzy莲 2010-12-20
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 billpu 的回复:]

这个就是word里粘贴出来的呀

to 楼主:首先这个下标是一个字,或者字符,我认为之所以网页里可以显示,而sqlserver不能显示的原因是网页比如csdn采用的编码集是(可变字节)utf-8,而sqlserver采用的是双字节(ucs-2),而这个下标是在ucs-2之外的(我估计在3字节到4字节当中),在utf-8之内的,所以sqlserver不能保存这个字.
不一定对,仅供参考
……
[/Quote]
非常感谢,按照你的方式解决了哦,谢谢哦,另开100分答谢(分少,请见谅~)
也非常感谢所有回复的人,谢谢你们的帮助,结贴了~
Delta 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 haiwer 的回复:]
1、转成图片保存
2、拆分成两个字段保存,一个一般的,一个下标
[/Quote]学习了
老张一笑 2010-12-16
  • 打赏
  • 举报
回复
应该和字体有关系,别在这下功夫了
杨友山 2010-12-16
  • 打赏
  • 举报
回复
当两个字符用,取的时候区分
billpu 2010-12-16
  • 打赏
  • 举报
回复
汗 楼上都出结果了 嘿嘿 反正我这边sqlserver2000没能显示出来,2005 2008没试过
dawugui 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 wxf163 的回复:]
小猪,你这俩数从哪粘出来的?


我怎么从word里都粘不上来呢?
[/Quote]
他那个不是标准数据,在word里面可以显示,在文本中不能显示.
billpu 2010-12-16
  • 打赏
  • 举报
回复
这个就是word里粘贴出来的呀

to 楼主:首先这个下标是一个字,或者字符,我认为之所以网页里可以显示,而sqlserver不能显示的原因是网页比如csdn采用的编码集是(可变字节)utf-8,而sqlserver采用的是双字节(ucs-2),而这个下标是在ucs-2之外的(我估计在3字节到4字节当中),在utf-8之内的,所以sqlserver不能保存这个字.
不一定对,仅供参考
王向飞 2010-12-16
  • 打赏
  • 举报
回复
小猪,你这俩数从哪粘出来的?


我怎么从word里都粘不上来呢?
dawugui 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 billpu 的回复:]
看看

SQL code
CREATE TABLE tb (col1 NVARCHAR(10))
INSERT tb SELECT N'mg/m²' UNION ALL
SELECT '1₂'
SELECT * FROM tb
[/Quote]
CREATE TABLE tb (col1 NVARCHAR(10))
INSERT tb SELECT N'mg/m²' UNION ALL
SELECT N'1₂'
SELECT * FROM tb

drop table tb

/*
col1
----------
mg/m²
1₂

(所影响的行数为 2 行)
*/


还真能行,厉害,以前没用过这种下标的数据.
王向飞 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 billpu 的回复:]

看看
SQL code
CREATE TABLE tb (col1 NVARCHAR(10))
INSERT tb SELECT N'mg/m²' UNION ALL
SELECT '1₂'
SELECT * FROM tb
[/Quote]人才
billpu 2010-12-16
  • 打赏
  • 举报
回复
看看
CREATE TABLE tb (col1 NVARCHAR(10))
INSERT tb SELECT N'mg/m²' UNION ALL
SELECT '1₂'
SELECT * FROM tb
RoyPenn 2010-12-16
  • 打赏
  • 举报
回复
表示鸭梨很大
昵称被占用了 2010-12-16
  • 打赏
  • 举报
回复
declare @t table (a nvarchar(50))
insert @t select 'mg/m²' union all select '2'

select * from @t

a
--------------------------------------------------
mg/m2
2

(2 行受影响)
yesyesyes 2010-12-16
  • 打赏
  • 举报
回复
估计你那个平方符号本来就有这个现成的字符,所以能储存显示,不应该算上标
而别的字符你即使弄成上标也不能储存
不信你把a弄成上标试试
下标本来就没有这种现成的字符,所以不行

Lizzy莲 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 dawugui 的回复:]

引用 15 楼 toni_308 的回复:
你说的定义规则是大概像这样的吗? M<sub>6,实际上是保存的数据是M6(6是下标)?
前台程序如何显示?该字段我是用ComboBox来显示的,M6(6是下标)显示不了
也许我可以明确的告诉你,这个东西实现不了.

如果能实现,那些化学公式就可以解决了.到目前为止,这种东西都无法解决.只有一些替代方法,例如用图片,例如设置转换字符.如M!2……
[/Quote]

额。。。。。
有点奇怪,那上标可以保存,下标不可以,不是很奇怪吗?用VS控件显示,目前我只知道RichTextBox可以显示带下标的数据,其他也不行。。
gw6328 2010-12-16
  • 打赏
  • 举报
回复
继续关注
dawugui 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 toni_308 的回复:]
你说的定义规则是大概像这样的吗? M<sub>6,实际上是保存的数据是M6(6是下标)?
前台程序如何显示?该字段我是用ComboBox来显示的,M6(6是下标)显示不了[/Quote]
也许我可以明确的告诉你,这个东西实现不了.

如果能实现,那些化学公式就可以解决了.到目前为止,这种东西都无法解决.只有一些替代方法,例如用图片,例如设置转换字符.如M!2表示M下标2.
Lizzy莲 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wxf163 的回复:]

定义规则,过滤吧

比如上标都 <pi>

下标都 <sub>

前台程序一般都能显示的,多一个判断而已
[/Quote]

你说的定义规则是大概像这样的吗? M<sub>6,实际上是保存的数据是M6(6是下标)?
前台程序如何显示?该字段我是用ComboBox来显示的,M6(6是下标)显示不了
billpu 2010-12-16
  • 打赏
  • 举报
回复
采用unicode编码,用语句插入,肯定有这个字的...
Lizzy莲 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 haiwer 的回复:]

你保存进去后读出来是怎么样的?
我这里mg/m²可以保存,读出来就是mg/m2
[/Quote]

读出来也是mg/m²(我测试过,肯定的)
加载更多回复(12)

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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