2

C#のdbaseIVテーブルでクエリを実行しようとしています。私はC#の経験があまりないので、クエリしようとしているテーブルに一重引用符が含まれているためにselectステートメントが失敗するため、気が遠くなりました。

ODBC接続を使用してテーブルに接続していますが、その部分は正常に機能します。名前を変更して引用符を削除すると、同じテーブルでクエリを実行します。

2つの一重引用符を使用してバックスラッシュでエスケープしようとしましたが、クエリをパラメータ化して、これがテーブル名では機能しないことを確認しました。

コマンドテキストはその通りであり、これが問題の根本です...

cmd.CommandText = "SELECT * FROM E4X'MAIN";

私が完全に立ち往生していて、何度も何度も妨げられる解決策を探すのに何日も費やしてきたのを助けてください...

4

3 に答える 3

2

多分:

cmd.CommandText = "SELECT * FROM [E4X'MAIN]";

編集:

私はこの問題の答えを探すために知っているすべての場所を探しましたが、何も見つかりませんでした。私が言える唯一のことは、そのようなテーブル名は悪い考えであるということで、全員が満場一致で同意しているようだということです。しかし、すでにこれだけの時間を費やしているので、テーブルの名前を恒久的に変更することはできません。しかし、どういうわけかそうなら、私はあなたがそれを取ることをお勧めします。

于 2011-05-18T21:46:28.363 に答える
1

SQl SERVERですか?オラクル?

試してみました

cmd.CommandText = @"SELECT * FROM E4X'MAIN";
cmd.CommandText = @"SELECT * FROM [E4X'MAIN]";

于 2011-05-18T21:47:31.850 に答える
0

参考までに、私は自分の問題の解決策を見つけました。クエリをshazamのように構成すると、彼女は機能します!!

cmd.CommandText = "SELECT * FROM \`E4X'MAIN.DBF\`;

すべてのあなたの助けに感謝しますうまくいけば、この答えは他の人が恐ろしい命名規則で立ち往生するのを助けるでしょう

リノ

于 2011-05-31T21:01:36.873 に答える