c# – 通用数据链接 – 无法打开文件.确保它是有效的数据链接文
发布时间:2020-12-15 22:29:20 所属栏目:百科 来源:网络整理
导读:我试图在C#中以编程方式创建一个UDL文件.在我的程序中,我想向用户显示数据链接属性窗口,但是我有自己的连接字符串默认值.我最初想过要做以下事情: string[] lines = new string[]{ "[oledb]","; Everything after this line is an OLE DB initstring","Prov
我试图在C#中以编程方式创建一个UDL文件.在我的程序中,我想向用户显示数据链接属性窗口,但是我有自己的连接字符串默认值.我最初想过要做以下事情:
string[] lines = new string[] { "[oledb]","; Everything after this line is an OLE DB initstring","Provider=SQLOLEDB.1;Persist Security Info=False" }; File.WriteAllLines("Test.udl",lines); Process p = Process.Start("Test.udl"); p.WaitForExit(); 但是,我在尝试打开文件时收到此错误:
这很奇怪,因为我创建了一个空文件,将其命名为something.udl,打开它,单击OK,然后打开文件的内容: [oledb] ; Everything after this line is an OLE DB initstring Provider=SQLOLEDB.1;Persist Security Info=False 但是在连接字符串的末尾有一个换行符.我使用KDiff来比较这个文件和我在程序中创建的文件,它说“文件是相同的文本,但它们不是二进制相等”或类似的东西. 我相信它与File.WriteAllLines方法如何写入字符串有关.所以我试图在方法中使用不同的编码,但没有成功.关于我哪里出错的任何想法? 我使用this MSDN link作为UDL文件的参考.还有一点值得注意的是,如果我打开一个新的文本文件并过去我的行数组中的所有行,我会得到同样的错误. 解决方法
您需要做的就是使用Unicode编码:
File.WriteAllLines("Test.udl",lines,Encoding.Unicode); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |