数据类型为binary(6),每位为1分别代表出勤,缺勤,迟到,早退,加班,请假。如一个员工即迟到又早退,而且没有请假,则这个字段值为101100。这样要如何实现啊。
 private Byte[] GetByteData()
        {
            Byte[] bytedata = null;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                bytedata  = (Byte[])(dt.Rows[i]["TimeCard_State"]);
            }
            return bytedata;
        }
我是这样的 。不对。

解决方案 »

  1.   

    binary(6)是6个字节,不是6位。
    你可以直接相加好了。
    出勤代表32
    缺勤代表16
    迟到代表8
    早退代表4
    加班代表2
    请假代表1
    如果有这个,就相加对应的数,最后转化为二进制。
      

  2.   

    本帖最后由 caozhy 于 2013-05-13 15:56:07 编辑
      

  3.   

    建议换个类型,eg(nvarchar)这样存取都方便
      

  4.   


    我是来求教 wanghui0380 的,“autovue pro本身就带的有一个web调用的例子,你可以在你本机上找找看”http://bbs.csdn.net/topics/100043656  ,俺找不到这个例子啊,我的是autovue 的20.0桌面版本
    ---------------------互相关注,才能发私信,囧
      

  5.   

    使用枚举的flag可简单破此问题
     [Flags]
        public enum MessagePermission
        {
            [Description("收信权限"), EnumShowName("收信权限")]
            Read = 1,        [Description("发信权限"), EnumShowName("发信权限")]
            Send = 2
        }
    这个是我项目中的枚举,
    可以做可以用"或",运算符组合多个状态
    具体给你个百度文库
    http://wenku.baidu.com/view/4286d368a45177232f60a2aa.html
    中.NET中Flags枚举的使用
    这段