[英]my code reading Excel file error
我正在使用VSTS 2008 + C#+ .Net 3.5讀取由Excel 2007創建的Excel文件(但另存為Excel 2003 xls格式)。 這是我的代碼,執行代碼adapter.Fill(cities)時出現異常-“ OldDbException無法找到可安裝的ISAM”。 任何想法有什么問題嗎?
static void Main(string[] args)
{
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\data.xls;ExtendedProperties=""Excel 8.0;HDR=YES;""";
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
DbDataAdapter adapter = factory.CreateDataAdapter();
DbCommand selectCommand = factory.CreateCommand();
selectCommand.CommandText = "SELECT ID FROM [Sheet1$]";
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
selectCommand.Connection = connection;
adapter.SelectCommand = selectCommand;
DataSet cities = new DataSet();
adapter.Fill(cities); // OldDbException Could not find installable ISAM
return;
}
預先感謝喬治
我復制了您的問題,用以下代碼替換了您的代碼,它應該可以正常工作
static void Main ( string [] args )
{
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\Data.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
DbProviderFactory factory = DbProviderFactories.GetFactory ( "System.Data.OleDb" );
using ( DbConnection connection = factory.CreateConnection ( ) )
{
connection.ConnectionString = connectionString;
using ( DbCommand command = connection.CreateCommand ( ) )
{
// Cities$ comes from the name of the worksheet
command.CommandText = "SELECT ID FROM [Sheet1$]";
connection.Open ( );
using ( DbDataReader dr = command.ExecuteReader ( ) )
{
DataSet cities = new DataSet ( );
cities.Load ( dr, LoadOption.OverwriteChanges, new [] { "Sheet1" } );
}
}
}
return;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.