我很好奇C#如何解释/存储来自SQL Server的不同数据类型,然后存储在C#字符串变量中:
示例:
假设我有一个变量来保存从数据库调用中检索到的字符串值:
public string TransactionId {get; set;}
如果出现以下情况,TransactionId中的值是否会被表示为:
只是想知道这两种不同的数据类型是如何存储在C#字符串类型中的。 C#将存储一个8位的VARCHAR值和一个16位的NVARCHAR
答案 0 :(得分:3)
它们将存储在字符串类型中几乎完全相同。唯一的区别是UTF-16或更大的SQL DB中的格式化将会在数据库中占用更多的物理存储空间。如果您仅使用ASCII / UTF-8(任何8位有限字符集),则应存储为varchar。 C#中的字符串值将表示与nvarchar完全相同,varchar都可以本地转换为字符串。如果使用扩展字符并将其存储在nvarchar中,则字符串的唯一内容差异将是。这些不会存储在varchar中。
也只是提供信息; SQL类型中的var意味着大小将根据给定的varchar(n)内容动态地改变,其中n是它的最大大小。与例如varbinary(n)等
的工作原理相同答案 1 :(得分:1)
你可以看看这里
http://msdn.microsoft.com/en-us/library/cc716729(v=vs.110).aspx
nvarchar和varchar映射到String
编辑:nvarchar,varchar,ntext,text,char,nchar都映射到String或Char []