我数据表中有Userflg 这么一个字段 bit型
Model类 将Userflg定义为Charif (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  ???帮帮忙吧~~~感激不尽

解决方案 »

  1.   

    post.Userflg=Convert.ToByte(dt.Rows[0]["Userflg"]) 试一下
      

  2.   

    我数据表中的记录都是0,1 为什么读出来的是true 或 false  ???========================sql 就是这样吧
      

  3.   

    MSSQL 中 bit 类型对应 C# 的类型就是 Nullable<bool>...
      

  4.   

    不行饿...post.Userflg是char 不能转换为ToByte或ToBealon
      

  5.   

    Userflg在数据库里面可能是big或别的类型1个字节的..在sql语句里面先Convert(varchar,Userflg);试试.
      

  6.   

    Userflg 是BIT 类型  我在Model实体类中是
    public char Userflg
    {
         get { return this.P_Userflg; }
         set { this.P_Userflg = value; }
    }
    不能转换为ToByte或ToBealon
      

  7.   

    chenzhifeng(【Santi】(Santiago)★★★★★) 好 我试试
      

  8.   

    post.Userflg = Convert.ToChar(Convert.ToInt32(dt.Rows[0]["Userflg"].ToString()));
      

  9.   

    post.Userflg = (bool)(dt.Rows[0]["Userflg"]) ? '1' : '0';
      

  10.   


     chenzhifeng(【Santi】(Santiago)★★★★★) ( ) 信誉:100  2007-08-22 11:51:30  得分: 0  
     
    Userflg在数据库里面可能是big或别的类型1个字节的..在sql语句里面先Convert(varchar,Userflg);试试.
      
    ------------------------------------------------------------------------------感谢你的回答,可以了.
      

  11.   

    感谢 chenzhifeng【Santi】(Santiago)
      

  12.   

    因为 true和false 在sql中的存储机制就是0和1 但是在读取的时候它会把0和1又转成ture和false