gpt4 book ai didi

c# datatable 无法更新。数据库或对象是只读的

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:23 25 4
gpt4 key购买 nike

private void Form1_Load(object sender, EventArgs e)
{
GetDataTable(@"C:\Documents and Settings\agordon\Desktop\ACTIVITYEX.log");
}
public System.Data.DataTable GetDataTable(string strFileName)
{
System.Data.OleDb.OleDbConnection conn =
new System.Data.OleDb.OleDbConnection
("Provider=Microsoft.Jet.OleDb.4.0; Data Source = "
+ System.IO.Path.GetDirectoryName(strFileName)
+ ";Extended Properties = \"Text;HDR=YES;FMT=TabDelimited\"");
conn.Open();
string strQuery = "SELECT * FROM [" + System.IO.Path.GetFileName(strFileName) + "]";
System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
System.Data.DataTable ds = new System.Data.DataTable("CSV File");
adapter.Fill(ds);
return ds;
}

当同一个文件被命名为 .csv 时,它不会给我一个错误;但是,当我将其重命名为 .log 时,它显示 无法更新。数据库或对象是只读的。 on adapter.Fill

这是编译器错误吗?

最佳答案

一个旧帖子,但我刚刚解决了那个问题。请引用这篇文章:https://support.microsoft.com/en-us/kb/245407

长话短说:Jet 引擎在读取 CSV 文件时只接受一些文件扩展名(扩展属性=TEXT 等)。

解决方案:

  1. 阅读时在临时文件夹中重命名文件
  2. 使用不同于 JET 的另一种机制(标准 File.io.ReadAllLines)阅读它
  3. 按照 antonio Bukala 的指示在 Windows 注册表中添加扩展

关于c# datatable 无法更新。数据库或对象是只读的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6208927/

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