最近用C#读Excel表中的数据库
DataSet ds = new DataSet();
txtFile1.Text = openFileDialog1.FileName;
OleDbConnection XLSConnection = new OleDbConnection(
@"provider=Microsoft.Jet.OLEDB.4.0;data source=" + txtFile1.Text + ";Extended Properties=Excel 8.0;");
//Select configuration data from Excel file that make by customer
OleDbDataAdapter DA_DB = new OleDbDataAdapter("select * from [DBS$]", XLSConnection);
//Fill data into DataSet
DA_DB.Fill(ds, "DBS");
this.dataGrid1.DataSource = ds;
结果碰到一个奇怪的Bug,有一列的值经常不正确。后来发现如果在打开Excel表的时候运行程序,读出的数据就是对的;如果不打开Excel表,该列读出的值就是null。
有人指点,新建一个Excel,将各列列名手动输入,再将数据粘入,读新建的表刚正常。试了,果然能行,无语。
后来还发现有时候空行过多,也会变成null行。