数据库存储nvarchar,我检索信息,并且我想将它塞进C#数据类型中,而没有任何声明转换代码。NVarChar到C#数据类型
你可以隐式地将nvarchar转换为C#数据类型吗? (如为nvarchar为int)
数据库存储nvarchar,我检索信息,并且我想将它塞进C#数据类型中,而没有任何声明转换代码。NVarChar到C#数据类型
你可以隐式地将nvarchar转换为C#数据类型吗? (如为nvarchar为int)
nvarchar的是一个字符串,如果你希望把它在一个int
你将不得不通过某种转换的,因为我可以在列“马铃薯”,什么int
会说映射到?
Here is a listing所有SQL类型以及它们映射到的C#类型。所以如果你想在C#中使用int
而无需转换,你唯一的选择是在Sql中使用int
。
非常好,谢谢。 – user3308043 2014-08-29 23:47:30
4分钟,我会通过复选标记。 – user3308043 2014-08-29 23:47:51
你可以隐式地处理它,除了将它视为字符串。
你可以使用一些逻辑Parse
或更好TryParse
它,如果你期望它是一个整数。
看一看下面
string nvarchar1 = "12";
string nvarchar2 = "1.2";
string nvarchar3 = "hello";
var one = int.Parse(nvarchar1); // good
var two = int.Parse(nvarchar2); // exception
var three = int.Parse(nvarchar3); // exception
var bone = int.TryParse(nvarchar1,out one); // true
var btwo = int.TryParse(nvarchar2,out one).Dump(); // False, 0
var bthree = int.TryParse(nvarchar3,out one); // False, 0
如果多少你在你的数据库信任你输入这一切都取决于。
很棒的回答。带有bool返回值的TryParse()是一个很棒的函数。 – user3308043 2014-08-29 23:51:01
您可以使用类似'int.TryParse()'的方式将*字符数据解析为数字类型。请注意,没有*隐式*保证任何给定的字符串都可以解释为数字,所以您的代码应该处理解析失败的情况。 – David 2014-08-29 23:40:21
@大卫看到我上面的编辑。 – user3308043 2014-08-29 23:46:07
语言中没有任何机制会假装字符串是一个整数,否。这样的机制本质上是错误倾向的,因为并不是所有的字符串都可以被解释为整数。您可以*写*这种机制,它会在尝试转换数据之前在内部对数据执行安全检查。尽管你最好的选择是将数字数据存储为数字数据。 – David 2014-08-29 23:48:00