gpt4 book ai didi

c# - OleDataAdapter Fill 方法将空行返回到数据表

转载 作者:行者123 更新时间:2023-11-30 17:42:41 24 4
gpt4 key购买 nike

这是我的代码:

public static DataTable GetDataFromSpreadsheet(OleDbConnection conn)
{
DataTable dt = new DataTable();
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", conn);
conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
conn.Close();
return dt;
}

调用此方法时,我根本没有收到错误!当我在数据表(dt)上放一个 watch 时,我可以看到它是空的。没有行标题,并且行是空的。我知道查询在某种程度上是有效的,因为 dt 上的 Rows.Count 返回我正在查询的工作表中的行数。

我可能做错了什么?

感谢您的帮助!

编辑:这是我的连接字符串

<add name="EXCEL" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;
Data Source={0};
Extended Properties='Excel 8.0;
HDR=Yes; IMEX=1;'" />

我将文件位置放在 {0}

的位置

最佳答案

建立连接

String strExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=Book1.xls;"
+ "Extended Properties='Excel 8.0;HDR=Yes'";

OleDbConnection connExcel = new OleDbConnection(strExcelConn);
OleDbCommand cmdExcel = new OleDbCommand();
cmdExcel.Connection = connExcel;

访问工作表

connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
connExcel.Close();
DataSet ds = new DataSet();
string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
da.SelectCommand = cmdExcel;
da.Fill(ds);
connExcel.Close();

关于c# - OleDataAdapter Fill 方法将空行返回到数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31701373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com