诡异的数据库写入有关问题
诡异的数据库写入问题
这两天写了个小程序,把一些excel表格数据写入sqlserver,然后就发现了一个很诡异的事情。有一个表格,前三行数据都是空的,结果程序从第四行开始就无法读取数据,在数据库里显示这张表格的内容都是空的。但只要在前三行任意一行任意一列输入任意数据,则后续的数据就可以正常读取。但程序读取其他的表格都没问题。请各位帮忙看看。代码如下:
------解决思路----------------------
用 + "Extended Properties='Excel 8.0;HDR=yes;IMEX=0;'" 试试。
这两天写了个小程序,把一些excel表格数据写入sqlserver,然后就发现了一个很诡异的事情。有一个表格,前三行数据都是空的,结果程序从第四行开始就无法读取数据,在数据库里显示这张表格的内容都是空的。但只要在前三行任意一行任意一列输入任意数据,则后续的数据就可以正常读取。但程序读取其他的表格都没问题。请各位帮忙看看。代码如下:
void ReadExcel(string filename, int index)
{
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";" + "Extended Properties=Excel 8.0;"))
{
conn.Open();
DataTable table = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
tablenames = new string[table.Rows.Count];
for (int i = 0; i < table.Rows.Count; i++) tablenames[i] = table.Rows[i][2].ToString();//获取Excel的表名
if (tablenames.Length <= 0)
{ MessageBox.Show("Excel中没有表!"); return; }
using (OleDbCommand cmd = conn.CreateCommand())
{
lb_tablename.Text = "表名:" + tablenames[index].Substring(0, tablenames[index].Length - 1);
cmd.CommandText = "select * from [" + tablenames[index] + "]";
ds = new DataSet();
using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
{
da.Fill(ds, tablenames[index]);
dgv_show.DataSource = ds.Tables[0];
}
}
}
}
------解决思路----------------------
用 + "Extended Properties='Excel 8.0;HDR=yes;IMEX=0;'" 试试。