明らかにTransoftドライバーであるDSNからテーブル名を接続して取得することについて質問を受けました。この質問はここにあります:
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 * ステートメントが気に入らないため、機能しません。上記のエラーが発生するだけです。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!");