先看个Model实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace Model
{
    class Model_FlashPicTb
    {
        public string ID
        {
            get;
            set;
        }
        public string Title
        {
            get;
            set;
        }
        public string Cont
        {
            get;
            set;
        }
        public string Time
        {
            get;
            set;
        }
        public string IsShow
        {
            get;
            set;
        }
    }
}在数据库中的“ID”是“Int”类型,“Title”是“String”类型,“Cont”是“varbinary”类型,“Time”是“DataTime”类型,“IsShow”是“bit”类型,Model这样写是不是会发生错误。现在该怎样写呢?“varbinary”对应C#中的什么数据类型?“DataTime”类型和“IsShow”又份别对应C#中的什么类型呢?

解决方案 »

  1.   

    肯定要是相应的属性啊。  int string  int dataTime int
      

  2.   

    varbinary  没用过
     
    datetime 对应datetime
     bit 好像是对应1和0 表示 ture 和FALSE吧
      

  3.   

    int string dataTime  用这三个就够了  用其它的转换的时候会有困难的 这个用的时候转换成什么类型的就可以了 用Convert.ToInt32或类型转换的方法就可以了
      

  4.   

    这样写肯定要错撒varchar是string类型的。。
      

  5.   

    在数据库中的“ID”是“Int”类型,“Title”是“String”类型,“Cont”是“varbinary”类型,“Time”是“DataTime”类型,“IsShow”是“bit”类型,Model这样写是不是会发生错误
    上面对应的是 int,string,string,datatime,bool
    楼主最好也对应类型。这样,在后面用的话要方便很多。
    当然,全部写成STRING的也可以,只是在读取的数据库的时候,lz要把数据库的类型tostring()一下就行了。当然,在传入数据库的时候,还要根据数据库类型,把对象里面的字段进行相应的转换下。
      

  6.   

    int string  datetime   就可以了....
      

  7.   

    请问各位:varbinary对应的数据类型是string,还是int?
      

  8.   

    Cont为什么不用 nvarchar(max)?不就是文本吗?
      

  9.   


    Cont存储的是图片啊,是二进制数据流varbinary啊。
      

  10.   

    这种思路一看就被数据库表给阻塞住大脑了。设计所谓的Model,纠缠数据库表干什么?如果你要表达时间,就算是用long(表达ticks)有有什么不好?怎能想当然地去纠缠数据库表“对应”什么?设计好Model,然后测试好。然后,当我们换一种数据库实现,例如从著名的Caché数据库切换到比较庸俗的SQL Server数据库,自然使用不同的字段对应Model中的字段,但是这要求你去重新定义Model?!唉!
      

  11.   

    Model是给有效地贯穿表现层和业务逻辑层用的。如果你实在不知道数据库表对应什么,写好参数化SQL语句然后根据根据参数的需要去转换属性值,甚至拼接SQL字符串也就行了。但是设计Model是不要纠缠某一种数据库表的字段类型。