我从access中读取一个表的数据到dataset中,现在的问题是我从access中读取到dataset中后发现数据错位了,例如我有如下表
ID name job
--------
2  aaa    bbb
3  ccc    ddd
读到dataset中就是
ID name job
--------
2  ccc    bbb
3  aaa    ddd
而且不是每次都这样,大多时候不这样,只有当access中的数据很大很多时候才会出现,而且当我把数据导出到外面,然后从新做一个access文件(结构和原来一样),再把数据导回去,就不错行了,然后这个文件又可以用一阵,然后又出错位的问题,超级郁闷,我用的sql语句很简单:select * from test;而且每次我都会用
try
{
DS.table["test"].clear();清空那个表
}
catch{}
最怪的是这个问题不是每次都出,而是当遇到大文件才出,而且不是所有都错,一般就20多行。

解决方案 »

  1.   

    没有,我的sql中根本没有排序,而且就算排序它也不能让数据错位呀,明明1号是张三,不能变成李四呀
      

  2.   

    这怎么可能,用了这么长时间.net ,第一次见到这个问题,难道是微软的疏忽?如果原来是
    2  aaa    bbb
    3  ccc    ddd现在是
    3  ccc    ddd
    2  aaa    bbb
    有可能,你说的那样,如果没有处理,打死我也不相信是自动的。
      

  3.   

    去跟踪一下DATASET里的数据,看看到底是在什么时候发生了错位
      

  4.   

    我发誓真的是这样,而且不是每次都出现,数据少不会出现,如果数据多了就会。
    我的程序是这样的:有一个空的access库,当用户打开一个文件时(文件有特定的格式),我会将文件分门别类的放入access库中,当用户进行编辑时,实际是编辑access库中的表,当用户点击保存后我会用库中的表的内容从新写回文件,现在发现如果是小文件,一切都没问题,如果文件很大(库中表的行数很多)那么就有可能出现保存后错行的问题,而且如果一个文件出现错行这个问题,那么以后会错行的越来越严重,但是把空的access库文件换一下(就是新建一个)就不错位了(已经错位的还错位,但不会继续错位),但是使用一段时间会继续错位。
      

  5.   

    把你的select语句发上来看看。
      

  6.   

    我真的已经彻底绝望了,根本不行,每次数据多些就错行,请问大家除了access外有没有像access这样的数据库?就是那种文件型的,可以和程序一起打包的数据库,用odbc可以连接的那种。
      

  7.   

    我真的很怕了,已经好久了都解决不了,我好怕是dateset的问题,请问多次对数据库进行写然后频繁进行DS。table【】。clear,然后fill(DS,××)会不会出问题,真的请大家帮忙了