c#字符串和VARCHAR和NVARCHAR
本文关键字:NVARCHAR VARCHAR 字符串 | 更新日期: 2023-09-27 18:12:23
我很好奇c#如何解释/存储来自SQL Server的不同数据类型,这些数据类型随后被存储在c#字符串变量中:
例子:
假设我有一个变量来保存从数据库调用中检索到的字符串值:
public string TransactionId {get; set;}
在以下情况下,TransactionId中的值是否会有不同的表示:
- SQL Server的数据类型是VARCHAR(8位)
- SQL Server的数据类型为NVARCHAR(16位)
只是想知道这两种不同的数据类型如何存储在c#字符串类型中。c#会存储8位的VARCHAR值和16位的NVARCHAR值吗?
它们将以几乎完全相同的字符串类型存储。唯一的区别是,SQL数据库中的UTF-16或更大的格式会占用数据库中更多的物理存储空间。例如,如果您只使用ASCII/UTF-8(任何8位限制字符集),则应该将其存储为varchar。c#中的字符串值将与varchar完全相同,而varchar都可以原生转换为字符串。字符串的唯一内容区别是是否使用扩展字符并将其存储在nvarchar中。
也只是信息;SQL类型中的var意味着大小将根据给定的内容动态变化varchar(n),其中n是可以设置的最大大小。与varbinary(n)等相同
您可以在这里查看
http://msdn.microsoft.com/en-us/library/cc716729 (v = vs.110) . aspx
nvarchar和varchar被映射到String
编辑:varchar, varchar, ntext, text, char, nchar都映射到String或char []