数据库存储nvarchar,我检索信息,我想把它塞进C#数据类型,没有任何声明性转换代码。
你可以隐式地将nvarchar转换为C#数据类型吗? (例如nvarchar to int)
答案 0 :(得分:4)
Nvarchar是一个字符串,如果你想把它变成int
,你将不得不经历某种转换,因为我可以在列中找到“Potato”,int
会那张地图到?
Here is a listing以及它们映射到的C#类型。因此,如果您想在C#中使用int
而不进行转换,那么您在Sql中的唯一选择就是int
。
答案 1 :(得分:1)
除了将其视为字符串之外,您无法隐式地使用它。
如果你希望它是一个int,你可以使用一些逻辑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
这完全取决于您是否以及您对数据库输入的信任程度。