OleDbDataAdapter填充方法不起作用 [英] OleDbDataAdapter Fill Method not working

查看:66
本文介绍了OleDbDataAdapter填充方法不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题是,数据集无法从excel工作表中检索任何数据,并且它停在Fill Method的一部分.

这是代码

My problem is that the Dataset does not retrieve any data from the excel sheet and it stops at the part of Fill Method.

Here is the code

label1.Text = openFile.FileName.Substring(openFile.FileName.LastIndexOf('\\')+1,openFile.FileName.Length - (openFile.FileName.LastIndexOf('\\')+1));
            string str_conn = "";
            if(label1.Text.EndsWith(".xls"))
                str_conn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + openFile.FileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
            else
                str_conn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " + openFile.FileName + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";";
            label1.Text = label1.Text.Remove(label1.Text.LastIndexOf('.'));

            OleDbConnection connection = new OleDbConnection(str_conn);
            connection.Open();
            System.Data.DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            String[] excelSheetNames = new String[dt.Rows.Count];
            int i = 0;

            foreach (DataRow row in dt.Rows)
            {
                excelSheetNames[i] = row["TABLE_NAME"].ToString();
                i++;
            }

            OleDbDataAdapter odp = new OleDbDataAdapter("SELECT * FROM ['" + excelSheetNames[0].ToString() + "'];", connection);
            OleDbCommandBuilder m_cbCommandBuilder = new OleDbCommandBuilder(odp);
            DataSet ds = new DataSet();
            odp.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
            dataGridView1.Update();


:((<


:((

推荐答案

我不确定,但是您可以按以下方式更改选择语句.



I am not sure but can you change your select statement as following.



OleDbDataAdapter odp = new OleDbDataAdapter("SELECT * FROM " + excelSheetNames[0].ToString() + "


", connection);
", connection);


jovhenni19写道:
jovhenni19 wrote:

OleDbDataAdapter odp = new OleDbDataAdapter("SELECT * FROM [" "+ excelSheetNames [0] .ToString()+"];",connection);

OleDbDataAdapter odp = new OleDbDataAdapter("SELECT * FROM [''" + excelSheetNames[0].ToString() + "''];", connection);



尝试:



Try:

OleDbDataAdapter odp = new OleDbDataAdapter("SELECT * FROM [''" + excelSheetNames[0].ToString() + "


这篇关于OleDbDataAdapter填充方法不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆