Transoft ODBC sqlReader error: File does not exsist: TableNa
本文关键字:not exsist TableNa does File sqlReader error Transoft ODBC | 更新日期: 2023-09-27 18:19:07
我有一个关于连接和从DSN中获取表名的问题,DSN显然是一个transsoft驱动程序。问题在这里:
OdbcConnection.GetSchema("TABLES";不工作
找到答案后,我可以显示所有的表名。现在我发现,读那些表格还是不行。出现错误:
Failed to connect to data source: ERROR [HY000][Transoft][TSODBC][usqlsd](log: 5852-142748) File does not exist: 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 *语句。它只是给出了上面所述的错误。transsoft 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命令和连接对象。下面是我刚刚测试的一个简单Insert
示例 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);
}