2012-01-01 10 views
0

明らかにTransoftドライバであるDSNからテーブル名を取得して接続する際に質問がありました。この質問はここにある:私はすべてのテーブル名を表示することができ働いたその答えの後Transoft ODBC sqlReaderエラー:ファイルがexsistではありません:TableName

OdbcConnection.GetSchema("TABLES"); not working

。今私は、それらのテーブルを読むことはまだよく動作していないことがわかります。 APPTが、それは読んでテーブル名がある

Failed to connect to data source: ERROR [HY000][Transoft][TSODBC][usqlsd](log: 5852-142748) File does not exist: 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); 
    } 

しかし、それは私の選択*ステートメントが好きではない何らかの理由で動作しません。上記のエラーが出ます。 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!"); 
+0

データベース管理ツールから 'SELECT * FROM APPT'を実行するとどうなりますか? –

+0

私はクライアントコンピュータに遠隔操作してこれをしようとしており、管理ツールはありません。それは医師のオフィスで、彼は自分のデータベースから自分のデータを取得したいと思っています。これはやるべきことでした。では、管理者権限を必要としない無料のダウンロード可能なクエリデータベース管理ツールがありますか? – Codejoy

+0

実行中のDBMSはどれですか? –

答えて

0

はここにあなたの必要なODBCのcommadと接続オブジェクトを構築するために、このような簡単な構文を使用してみてください、私は単純な挿入

のためにテストした例であります
 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); 
    } 
関連する問題