Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OleDbAdapter SelectCommand Excel c#_C#_Excel_Oledbcommand_Oledbdataadapter - Fatal编程技术网

OleDbAdapter SelectCommand Excel c#

OleDbAdapter SelectCommand Excel c#,c#,excel,oledbcommand,oledbdataadapter,C#,Excel,Oledbcommand,Oledbdataadapter,我想从Excel文件中仅有的一张工作表中查询数据 MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$] ", MyConnection); 此行查询表1中的数据。问题是我不知道输入文件中工作表的名称。是否有任何方法可以写入命令字符串,以便无论工作表的名称是什么,它都可以访问该工作表。如果工作簿中始终只有一个工作表,则可以先获取工作表名称,然后将其放入查询中: DataTable dt = My

我想从Excel文件中仅有的一张工作表中查询数据

 MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$] ", MyConnection); 

此行查询表1中的数据。问题是我不知道输入文件中工作表的名称。是否有任何方法可以写入命令字符串,以便无论工作表的名称是什么,它都可以访问该工作表。

如果工作簿中始终只有一个工作表,则可以先获取工作表名称,然后将其放入查询中:

DataTable dt = MyConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = dt.Rows[0]["TABLE_NAME"].ToString();

如果您有多张工作表,则会返回按字母顺序排在第一位的工作表。

如果您将始终工作簿中只有一张工作表,则可以先获取工作表名称,然后将其放入查询中:

DataTable dt = MyConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = dt.Rows[0]["TABLE_NAME"].ToString();

如果您有多张工作表,那么这将返回按字母顺序排在第一位的工作表。

可能重复的想法是,文件中只有一张工作表。那么,不管名称如何,我如何选择该工作表呢?可能重复的想法是,我在文件中只有一个工作表。那么,不管名称如何,我如何选择该工作表?