C#、SqlServer和JavaScript 空字符串和null转换为其它数据类型

C# 无法将空字符串(string.Empty)转换为 int long bool decimal double float,但是null可以转换为其它类型

string x = string.Empty;
//int _int = Convert.ToInt32(x); // 无法转换,报错 "输入字符串的格式不正确"
//long _long = Convert.ToInt64(x); // 无法转换,报错 "输入字符串的格式不正确"
//bool _bool = Convert.ToBoolean(x); // 无法转换,报错 "该字符串未被识别为有效的布尔值"
//decimal _decimal = Convert.ToDecimal(x); // 无法转换,报错 “输入字符串的格式不正确”
//double _double = Convert.ToDouble(x); // 无法转换,报错 “输入字符串的格式不正确”
//float _float = Convert.ToSingle(x); // 无法转换,报错 “输入字符串的格式不正确”

object _null = null;
int _int1 = Convert.ToInt32(_null); // 可以转换为 0
long _long1 = Convert.ToInt64(_null); // 可以转换为 0
bool _bool1 = Convert.ToBoolean(_null); // 可以转换为 false
decimal _decimal1 = Convert.ToDecimal(_null); // 可以转换为 0
double _double1 = Convert.ToDouble(_null); // 可以转换为 0
float _float = Convert.ToSingle(_null); // 可以转换为 0

string _string = Convert.ToString(_null); // 可以转换为 空字符串

SqlServer 可以将空字符串('')转换为 int bigint bit float ,但是无法转换为 decimal;null转换为其它类型都为null

declare @x nvarchar=''
select CAST(@x as int)'int' -- 可以转换为0
select CAST(@x as bigint)'bigint' -- 可以转换为0
select CAST(@x as bit)'bit' -- 可以转换为0
--select CAST(@x as decimal)'decimal' -- 无法转换 报错 '从数据类型 nvarchar 转换为 numeric 时出错。'
select CAST(@x as float)'float' -- 可以转换为0

select CAST(null as int)'int' -- 可以转换为 null
select CAST(null as bigint)'bigint' -- 可以转换为 null
select CAST(null as bit)'bit' -- 可以转换为 null
select CAST(null as decimal)'decimal' -- 可以转换为 null
select CAST(null as float)'float' -- 可以转换为 null

JavaScript Number函数将空字符串('')和null转换为0,将undefined转换为NaN;Boolean函数将空字符串''、null、undefined和数字0转换为false

 

posted @ 2020-10-21 09:10  温故纳新  阅读(1121)  评论(0编辑  收藏  举报