DataSet 数据库Access
程序的基本功能是要把一个文件里的内容读到数据库中,这个文件的内容的主要是:人名,本人年龄,本人体重
下面的这几行代码是建立一个文件的流,这个文件里涉及很多人,其中numberPersonnames代表文件里的人数
BufferedStream dataFileStream = new BufferedStream(File.Open( strSelectFile, FileMode.Open, FileAccess.Read, FileShare.Read));
BinaryReader dataFileReader = new BinaryReader(dataFileStream, System.Text.Encoding.Default);
int numberPersonnames = dataFileReader.ReadInt32();
下面这几行代码是建立数据库连接
OleDbConnection thisCon = new OleDbConnection
(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\mytest\ProfessionalMenus\Sta.mdb");
thisCon.Open();
OleDbDataAdapter thisAdapter = new OleDbDataAdapter("SELECT * FROM person", thisCon);
OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);
这里用了DataSet
DataSet thisSet = new DataSet();
thisAdapter.Fill(thisSet, "person");
for (int i = 0; i < numberPersonnames; i++)
{
DataRow thisRow = thisSet.Tables["person"].NewRow();
thisRow.BeginEdit();
thisRow["Name"] = dataFileReader.ReadString().ToString();
thisRow["Age"] = dataFileReader.ReadSingle();
thisRow["Ton"] = dataFileReader.ReadSingle();
thisRow.EndEdit();
插入新的一行
thisSet.Tables["person"].Rows.Add(thisRow);
}
thisAdapter.Update(thisSet, "person");
thisCon.Close();
出现的问题是:当文件很小是,里面的人数在5000左右时,数据库的内容是正确的。但是当文件很大时,比如里面有两万个人数时,数据库中的数据就有点小错误,原文件中的人名在数据库中都有,而且信息都是正确的,但是数据库里有一些多余的行,这些行中没有人名,但是有年龄和体重信息,这些信息好像也不知道是从哪里来的。请问这是什么原因???