我的代码是这样写的:String ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyMDB.mdb";
            //创建一个OleDbConnection对象
            System.Data.OleDb.OleDbConnection OleDBConn1 = new System.Data.OleDb.OleDbConnection(ConnString);
            string sqlYuju;            sqlYuju = "INSERT INTO Data VALUES(" +
                    "'" + textBox1.Text + "'," +
                    "'" + textBox2.Text + "'," +
                    "'" + textBox3.Text + "')";
            
            //创建一个oledbcommand对象
            OleDbCommand myCommand = new OleDbCommand(sqlYuju, OleDBConn1);
          
            //打开连接
            OleDBConn1.Open();
            OleDbDataReader myReader = myCommand.ExecuteReader();            myReader.Read();
           myReader.Close();
           OleDBConn1.Close();我添加数据的时候数据为什么不是一个接一个的来呢?而是乱插入的。像是随机插入一样。
以前看C++的时候记得有光标控制的,但是我不知道C#要怎么做,希望高手帮忙看看,顺便把代码加上,我是刚学的。

解决方案 »

  1.   

    就是说想用C#给ACCESS添加数据,但是添加数据的时候数据没有插到最后一行里,而是插到中间
      

  2.   

    打开的时候,有一个排序吧,没关系的,你想有序,可以加一个自动增长列.
    用程序加一句order by
      

  3.   

    OleDbDataReader myReader = myCommand.ExecuteReader();
    --->
    myCommand.ExecuteNonQuery()
    数据库插入是顺序的,也可能用户设置了自动增加的阶越,那么就是不顺序的。
    另外在你插入数据库的时候有可能别人也在操作。
      

  4.   

    有主键的话,回自动按主键排列
    就算没,ACCESS也会给你按某行进行自动排列要想按添加的顺序显示,最好加个自动增长的主键就行了
      

  5.   

    姓名   年龄   学校
    小红    20    清华
    小黄    21    复旦
    小白    21    北大我插入一段数据怎么变成
    姓名   年龄   学校
    小红    20    清华
    小青    22    清华
    小黄    21    复旦
    小白    21    北大
    为什么小青会插到那里呢?-------------------------------------------------------
    因为你的排序列不是年龄吧
    再说这个也没关系,取出的时候order by 年龄不就ok了
      

  6.   

    不妨添加一列index,使其自动增长,该列一般自动就设为主键了,以后插入就可以按序插入了
      

  7.   

    我有主键啊,就是姓名啊AOD不是有个叫游标的东西吗?控制顺序的吧,但是不知道怎么弄。