Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用特定的驱动程序在.Net中编写Paradox表_C#_.net_Odbc_Oledb_Paradox - Fatal编程技术网

C# 使用特定的驱动程序在.Net中编写Paradox表

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 )}}

我试图用c在一个悖论表中添加值

关键是该表包含本地化字符串,BDE需要Langdriver ANSII850

我尝试在.Net中同时使用OLEDB和Odbc驱动程序,但无法在数据库中写入正确的值。我总是遇到编码问题

例如:

// 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软件也使用并可以指定代码页之前。谢谢你的评论,你给了我一个线索