C# 使用特定的驱动程序在.Net中编写Paradox表
我试图用c在一个悖论表中添加值 关键是该表包含本地化字符串,BDE需要Langdriver ANSII850 我尝试在.Net中同时使用OLEDB和Odbc驱动程序,但无法在数据库中写入正确的值。我总是遇到编码问题 例如:C# 使用特定的驱动程序在.Net中编写Paradox表,c#,.net,odbc,oledb,paradox,C#,.net,Odbc,Oledb,Paradox,我试图用c在一个悖论表中添加值 关键是该表包含本地化字符串,BDE需要Langdriver ANSII850 我尝试在.Net中同时使用OLEDB和Odbc驱动程序,但无法在数据库中写入正确的值。我总是遇到编码问题 例如: // ODBC Connection string (using string.Format for setting the path) string connectionBase = @"Driver={{Microsoft Paradox Driver (*.db )}}
// ODBC Connection string (using string.Format for setting the path)
string connectionBase = @"Driver={{Microsoft Paradox Driver (*.db )}};DriverID=538;Fil=Paradox 5.X;DefaultDir={0};CollatingSequence=ASCII;";
// I tried to put the langdriver in the CollatingSequence parameter
string connectionBase = @"Driver={{Microsoft Paradox Driver (*.db )}};DriverID=538;Fil=Paradox 5.X;DefaultDir={0};CollatingSequence=ANSII850;";
// I tried the OleDb driver
string connectionBase = @"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Paradox 5.x;"Data Source={0};";
然后,我尝试插入值ççáçõ以进行测试。根据我使用的驱动程序,我会得到不同的结果,但最终的字符串永远不会正确编码
编辑:
最后,我找到了一个解决方案,但并不理想:
我可以通过调用用delphi编写的外部可执行文件从一个langdriver切换到另一个。在这种情况下,我使用的是ANSII850。
然后,我就能从悖论表中读取数据。但我还是没有得到好的数据格式。
表中的字符串也没有使用代码页850进行编码,尝试使用.Net工具对其进行解码是行不通的
相反,我手动跟踪未正确读取的特殊字符,并用正确的utf8字符替换它们。
就写作而言,我做的恰恰相反。
它可以工作,但仍然不理想。您确定您正在使用BDE吗?您的示例涉及许多Microsoft部件
BDE对这些特殊字符使用较高的代码,并使用代码页对其进行解释。看起来850是你认为正确的。如果您只需向bde发送一个包含所需字符的十六进制或十进制的字符串,您就可以看到它是否能够正确打印该字符串。您确定正在使用bde吗?您的示例涉及许多Microsoft部件
BDE对这些特殊字符使用较高的代码,并使用代码页对其进行解释。看起来850是你认为正确的。如果您只需向bde发送一个包含所需字符的十六进制或十进制的字符串,您就可以看到它是否能够正确打印该字符串。我正在尝试访问C.Net中的这些表,如何使用bde?有没有其他方法我不想使用BDE?也许我误解了,但你的问题是关于BDE的。使用.Net我想你必须看看微软使用的是什么。他们的软件还能够读取Paradox表。我不知道.Net如何读取旧的代码页,但在.Net MS软件也使用并可以指定代码页之前。谢谢你的评论,你给了我线索。我正在尝试访问C.Net中的那些表,我如何使用BDE?有没有其他方法我不想使用BDE?也许我误解了,但你的问题是关于BDE的。使用.Net我想你必须看看微软使用的是什么。他们的软件还能够读取Paradox表。我不知道.Net如何读取旧的代码页,但在.Net MS软件也使用并可以指定代码页之前。谢谢你的评论,你给了我一个线索