繁体   English   中英

与.tps数据库的Odbc连接不起作用

[英]Odbc Connection to .tps database not working

我正在尝试从.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数据源管理员上配置驱动程序

在此处输入图片说明

当我使用“顶部扫描”并查看同一张表时,其中有一条记录,所以为什么它不在datagridview上显示该结果,并且该ISAM表是什么,请帮我解决这个问题,因为我在这里没有选项。

我将首先尝试以您的经验为您提供帮助,此驱动程序有很多奇怪的地方,并且网络上的信息很少,而且我已经浪费了很多时间来确定如何工作。

您的sql是:从SYSMST中选择SELECT Store_No,Store_Name,Store_City,Store_State

我的提示:

  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查找女巫字段就有问题(例如,byte,short,date,array造成问题),请避免使用“选择*”,因为字段数据类型(某些表可以正常工作,但大多数表却很难工作)。

  4. 尝试使此选择仅仅是为了看看它是否可以正常工作,因为字符串可以正常工作“ SELECT Store_Name FROM SYSMST”

  5. 不要将TPS ODBC SQL语言与其他著名的SQL系统(例如SQL-Server)进行比较,因为这里会出现很多错误,不清楚并且很难弄清楚为什么。

  6. 即使我尝试在C#上使用错误处理编写的某些代码处于尝试捕获状态,但在我的尝试中C#exe崩溃了(没有捕获错误)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM