尝试将表值转发到组合框时出错

时间:2014-01-31 04:21:44

标签: c# sql excel exception

我正在尝试将Ms.Excel表列名称传递到组合框中。我使用bellow函数来执行活动,但我得到一个像这样的例外

  

'元数据$'不是有效名称。确保它不包含无效字符或标点符号,并且不会太长。

这是代码      'Metadata $'不是有效名称。确保它不包含无效字符或标点符号并且不会太长

  private void connection(String path)
    {
        string connectionString = string.Format(Thread.CurrentThread.CurrentCulture, "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES;'",path);
        DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
        using (DbConnection connection = factory.CreateConnection())
        {
            connection.ConnectionString = connectionString;
            using (DbCommand command = connection.CreateCommand())
            {
                command.CommandText = @"SELECT [File], [ItemName], [ItemDescription], [Photographer name], [Date], [Environment site] FROM [Metadata$]";
                connection.Open();
                using (DbDataReader dr = command.ExecuteReader())
                {
                    if (dr.HasRows)

                    {
                        while (dr.Read())
                        {
                            cmb.Items.Add(dr[0].ToString());
                        }
                    }
                }
                connection.Close();
            }
        }
    }

注意 - 我使用openfiledialog来获取excel文件的路径

我使用了fallowing sql命令而不是在代码上使用一个。

"SELECT column_name from information_schema.columns where table_name = 'BigData' Order by ordinal_position";

这给了我以下例外。

  

“Microsoft Access数据库引擎无法找到对象'列'。请确保该对象存在,并且您正确拼写其名称和路径名。如果'columns'不是本地对象,请检查您的网络连接或联系服务器管理员。“

我想纠正这个错误。两者或至少单一的。

谢谢。

0 个答案:

没有答案