该数据库存储nvarchar类型数据,我需要检索这些信息并将其转换为C#数据类型,但不需要编写任何声明性的转换代码。
是否可以将nvarchar隐式转换为C#数据类型?(例如nvarchar转换为int)
int
,你需要进行某种类型的转换,因为该列中可能包含“Potato”,那么对应的int
是多少呢?int
,唯一的选择就是在Sql中使用int
。除了将其视为字符串之外,您无法隐式地对其执行任何操作。
如果您希望它是一个整数,则可以使用一些逻辑来解析
或更好地尝试解析
它。
请参阅以下内容:
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
这完全取决于您对数据库中输入的信任程度和数量。
int.TryParse()
的方法将字符数据解析为数字类型。但是请注意,并没有隐含的保证任何给定的字符串都可以被解释为数字,因此你的代码应该处理解析失败的情况。 - David