我正在使用简单的查询从数据库检索用户信息。
select * from dbo.[User] u where u.Email = @email
我接着尝试获取一个名为IsConfirmed的列的值(它在数据库中表示为位类型列),并将其转换为bool型。
bool isConfirmed = int.Parse(sqlDataReader["IsConfirmed"].ToString()) == 1;
然后我收到一个FormatException错误,指出“输入字符串的格式不正确”。
我看到了一个类似的问题,其中答案提供了这段代码:
bool isConfirmed = sqlDataReader.GetBoolean(0);
但是这种方法对我的情况不适用,因为我不知道“IsConfirmed”列的索引,也不想知道。我想使用列名。
bool isConfirmed = sqlDataReader["IsConfirmed"] != DBNull.Value && (bool)sqlDataReader["IsConfirmed"]
这样的内容。 - Steve Smith