日期:2014-05-18  浏览次数:20525 次

一个类型转换的问题,高手来看看 晕半天了...
我数据表中有Userflg   这么一个字段   bit型
Model类   将Userflg定义为Char

if   (dt.Rows.Count   >   0)
    {
            post.PostID   =   dt.Rows[0][ "PostID "].ToString().Trim();
            post.PostName   =   dt.Rows[0][ "PostName "].ToString().Trim();
            post.PostGrade   =   dt.Rows[0][ "PostGrade "].ToString().Trim();
            post.PostMemo   =   dt.Rows[0][ "PostMemo "].ToString().Trim();
            post.Userflg   =   Convert.ToChar(dt.Rows[0][ "Userflg "]);//就是这句出问题
            return   post;
      }
else
      {
              return   null;
      }

post.Userflg=Convert.ToChar(dt.Rows[0][ "Userflg "])  
我转换为char型.为什么结果返回的是true   或   false     应该是   0   和   1啊.

我数据表中的记录都是0,1   为什么读出来的是true   或   false     ???

帮帮忙吧~~~感激不尽


------解决方案--------------------
post.Userflg=Convert.ToByte(dt.Rows[0][ "Userflg "]) 试一下
------解决方案--------------------
我数据表中的记录都是0,1 为什么读出来的是true 或 false ???

========================

sql 就是这样吧
------解决方案--------------------
Userflg是BIT类型吧?
------解决方案--------------------
是这样的,应该用ToBoolean
------解决方案--------------------
MSSQL 中 bit 类型对应 C# 的类型就是 Nullable <bool> ...
------解决方案--------------------
Userflg在数据库里面可能是big或别的类型1个字节的..在sql语句里面先Convert(varchar,Userflg);试试.
------解决方案--------------------
bit..-_-#
------解决方案--------------------
post.Userflg = Convert.ToChar(Convert.ToInt32(dt.Rows[0][ "Userflg "].ToString()));
------解决方案--------------------
post.Userflg = (bool)(dt.Rows[0][ "Userflg "]) ? '1 ' : '0 ';