2

我正在尝试从 .tps 文件中选择一些字段,但出现以下错误: 在此处输入图像描述

这是我的代码:

 privatevoidbutton1_Click(objectsender,EventArgse)
{
stringcon=ConfigurationManager.AppSettings["WinDSS_Connection"];
try
{
OdbcConnectionconn=newOdbcConnection(con);
OdbcCommandcmd=newOdbcCommand();
OdbcDataAdapterda=newOdbcDataAdapter();
DataTabledt=newDataTable();
conn.Open();
cmd=conn.CreateCommand();
cmd.CommandType=CommandType.Text;
cmd.CommandText="SELECT Store_No,Store_Name,Store_City,Store_State FROM SYSMST";
da.SelectCommand=cmd;
da.Fill(dt);
dgv1.DataSource=dt;
conn.Close();

}
catch(Exceptionex)
{
MessageBox.Show(ex.Message.ToString());
}
}

我的 app.config

<appSettings>
<addkey="WinDSS_Connection"value="DRIVER=SoftVelocityTopspeeddriver(*.tps);DBQ=T:\Rambo\Store231WinDss\windss\DATA;Extension=tps;Oem=N;NullEmptyStr=N;"/>
</appSettings>

我如何在 ODBC 数据源管理员上配置我的驱动程序

在此处输入图像描述

当我使用 Top Scan 并查看同一张表时,其中有一条记录,那么为什么它没有在 datagridview 上显示该结果以及这个 ISAM 表是什么,请帮助我,因为我在这里没有选项。

4

1 回答 1

0

我会先用我的经验来帮助你,这个驱动程序有很多奇怪的地方,网上的信息很少,我已经浪费了很多时间来弄清楚如何工作。

你的 sql 是:SELECT Store_No,Store_Name,Store_City,Store_State FROM SYSMST

我的提示:

  1. 确保将驱动程序配置为 32 位而不是 64 位的 ODBC,它不适用于 64 位,C# 也需要以 32 位编译,尝试使用其他工具测试 ODBC,以确保它像 Excel 一样工作从 ODBC 导入表,这对我找到如何使用这个 TopSpeed 驱动程序有很大帮助。

  2. 您在路径 T:\Rambo\Store231WinDss\windss\DATA 上是否有 SYSMST.tps 文件?,当您使用像“FROM AAA”这样的 sql 时,AAA 是 tps 的名称,而不是 Clarion 的 DCT 的表驱动程序只知道文件而不是 DCT。

  3. Store_No,Store_Name,Store_City 和 Store_State 字段的数据类型是什么,因为驱动程序有一些数据类型有问题,试着让你每次用一个字段的 sql 查找女巫字段有问题(例如字节,短,日期,数组制造问题),尽量避免“选择*”,因为字段数据类型(有些表可以正常工作,但大多数表和大表很难)。

  4. 尝试进行此选择只是为了查看它是否工作“SELECT Store_Name FROM SYSMST”,因为字符串工作正常

  5. 不要将 TPS ODBC SQL 语言与其他著名的 SQL 系统(如 SQL-Server)进行比较,因为这里会出现很多错误,原因不明。

  6. 即使我在 C# 上编写的一些带有错误处理的代码在 try and catch 中,但 C# exe 在我的尝试中崩溃(没有捕获错误)。

只是希望我能帮助你。最后一件事,很多尝试和很多好运。

于 2016-07-04T01:44:00.503 回答