C# Transoft ODBC sqlReader错误:文件不存在:TableName
我有一个关于连接并从DSN中获取表名的问题,DSN显然是Transoft驱动程序。这个问题是: 在这个答案起作用之后,我可以显示所有的表名。现在我发现,阅读这些表格仍然不起作用。我得到一个错误:C# Transoft ODBC sqlReader错误:文件不存在:TableName,c#,sql,odbc,transoft,C#,Sql,Odbc,Transoft,我有一个关于连接并从DSN中获取表名的问题,DSN显然是Transoft驱动程序。这个问题是: 在这个答案起作用之后,我可以显示所有的表名。现在我发现,阅读这些表格仍然不起作用。我得到一个错误: 无法连接到数据源:错误[HY000][Transoft][TSODBC][usqlsd](日志:5852-142748)文件不存在:APPT 其中APPT是它读取的表名。目前,这是一段简单的代码: void dumbRead(String tableName) { OdbcCo
无法连接到数据源:错误[HY000][Transoft][TSODBC][usqlsd](日志:5852-142748)文件不存在:APPT
其中APPT是它读取的表名。目前,这是一段简单的代码:
void dumbRead(String tableName)
{
OdbcCommand sqlCommand = conn.CreateCommand();
// execute sql
sqlCommand.CommandText =
"select * from " + tableName; //I even tried with qualifying table name like:
// "select * from douglas." + tableName; where the douglas. is the account i.e.
// the table owner I think.
OdbcDataReader sqlReader = sqlCommand.ExecuteReader();
int fieldCount = sqlReader.FieldCount;
MessageBox.Show("Field Count: " + fieldCount);
}
但它不起作用,因为出于某种原因,它不喜欢我的select*语句。它只是给出了上述错误。Transoft USQL真的是另一种野兽吗
到目前为止,其他的一切(再次感谢我上一篇得到答案的帖子)都非常有效
以下是我的连接字符串(根据注释):
private void Form1_Load(object sender, EventArgs e)
{
txtDSNName.Text = "Company_Shared";
}
private void btnConnect_Click(object sender, EventArgs e)
{
ConnectToData(txtDSNName.Text);
}
public void ConnectToData(String dsn)
{
conn= new System.Data.Odbc.OdbcConnection();
//conn.ConnectionString = "FIL=MS Access;DSN=" + dsn;
conn.ConnectionString = "DSN=" + dsn; //dsn equals "Company_Shared"
try
{
conn.Open();
MessageBox.Show("Connected!");
尝试使用这样一个简单的构造来构建必要的ODBC commad和connection对象。这是我刚刚测试的一个简单插入的示例
OdbcConnection odbcConn = new OdbcConnection(odbcConnString);//your odbc conn String
odbcConn.Open();
OdbcTransaction odbcTransStockList;//if you want to use transaction
using (OdbcCommand odbcmdSelect = new OdbcCommand(strInsertStringAccess, odbcConn))//or if you are using SQL Server I am assuming it's Access
{
odbcmdInsert.CommandTimeout = 60;
odbcTransStockList = odbcConn.BeginTransaction();
odbcmdInsert.Transaction = odbcTransStockList;
odbcmdInsert.CommandType = System.Data.CommandType.Text;
try
{
odbcmdInsert.ExecuteNonQuery();
odbcTransStockList.Commit();
}
catch (OdbcException odbcEx)
{
Console.WriteLine(odbcEx.Message);
}
}
((IDisposable)odbcTransStockList).Dispose();
((IDisposable)odbcConn).Dispose();
}
catch (OdbcException odbcEx)
{
Console.WriteLine(odbcEx.Message);
}
当您从数据库管理工具运行
SELECT*FROM APPT
时会发生什么情况?我正在远程登录客户端计算机以尝试执行此操作,但他们没有管理工具。这是一个医生办公室,他想让我从他的数据库中获取他的数据,这是一件很麻烦的事。那么,是否有一个免费下载的查询数据库管理工具,它不需要管理员权限就可以安装?在windows的ODBC设置中,我是否可以看到它?我不确定,我甚至没有远程参与设置数据库或使用它的系统。可能是基于它要使用的驱动程序。我想我发现(很久以后是的,我很慢)这个问题与以下事实有关:数据库依赖于它无法始终找到的其他正在设置的数据源。我怀疑这至少是个问题,但我不是100%确定。我现在知道它是一个连接到数据源的transsoft数据库,其字典id由.uDD定义,它是一个平面文件数据库,与cobol或其他东西有一些绑定?他们的transoft驱动程序似乎是一个odbc连接……尽管在一些表上,我确实看到在尝试从中选择*时“未找到文件”。