【问题标题】:Format of the initialization string does not conform to specification starting at index 89初始化字符串的格式不符合从索引 89 开始的规范
【发布时间】:2017-08-28 07:58:57
【问题描述】:

请协助。 我的代码中出现以下错误;

 constr = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\DAKTARI\\Desktop\\smarttable.xls;Extended Properties=''Excel 12.0 Xml;HDR=YES;''", FilePath);

第 26 行:Econ = new OleDbConnection(constr);

请帮忙

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您使用了string.Format,但从未在该字符串的任何位置使用FilePath 变量。您需要使用 {0} 设置它而不是路径 - 因为它是位置 0 的参数(在您的情况下,它是第一个也是唯一的参数)。

    但是,该错误是由您在 Extended Properties 部分中使用双 '' 引起的,您只需要一个 '

    请尝试以下方法:

     constr = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=YES;'", FilePath);
    

    关于string.Format的更多解释

    当您使用string.Format 时,您传递字符串参数以替换为{0}{1}{2} 等。

    例如,

    string.Format("Hello {0}, how are you {1}?", "John", "today"); 
    

    将产生一个字符串:

    "Hello John, how are you today?"
    

    【讨论】:

    • 感谢@Koby..我已删除双引号并将连接字符串更改为 constr = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};扩展属性='Excel 12.0 Xml;HDR=YES;'", FilePath);但我现在收到此错误;找不到可安装的 ISAM
    • @johnkc 这完全是另一个问题,应该作为一个新问题发布。请接受我的正确回答并参考这篇文章:support.microsoft.com/en-us/help/209805/…。如果您仍有问题,请发布一个新问题并在此处通过该问题的链接向我发送电子邮件。
    • 谢谢@Koby..您能否给我发送一个代码,该代码只是使用 asp.net 和 c# 将数据从 excel 导入数据库表..这让我头疼..并为我包括web.config 代码也...
    猜你喜欢
    • 2012-01-04
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多