我正在使用简单的查询从数据库中检索用户信息。
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列的索引,也不想知道。我想使用列名。
最佳答案
从数据读取器索引器属性返回的值是object类型的,但是可以强制转换为已存储为它的数据类型。
试试这个:
bool isConfirmed = (bool)sqlDataReader["IsConfirmed"]