从数据库中取出数据放在DataTable中,并不是将DataTable的表结构保持与数据库的表结构完全保持一致,每一个DataTable的实例创建时如AllowDBNull和DefaultValue等属性值等都有自已的默认值。

解决方案 »

  1.   

    //获得DataSet对象(sql语句,表名)
    public DataSet GetDs(string str_Sql,string str_Table)
    {
    dbOpen();
    myDataAdapter = new OleDbDataAdapter(str_Sql,myConn);
    myDataSet = new DataSet();
    //注意,就是下面这句,填充后dataset里的对应datatable就是和数据库一样的了
    myDataAdapter.FillSchema(myDataSet,SchemaType.Source,str_Table);
    myDataAdapter.Fill(myDataSet,str_Table);
    dbClose(); return myDataSet;
    }
      

  2.   

    使用Ado.net获取数据库架构信息
    http://blog.csdn.net/zhzuo/archive/2004/07/03/33273.aspx