1

C# 内の SQL ステートメントからテーブル階層を決定するという現在の要件があります。たとえば、次の sql ステートメントについて考えてみます。

Select Table1.*, Table2.* from Table1 
left join table2 on Table1.parentCol = Table2.childCol

これにより、Table1 に 3 つ、table2 に 4 つの 7 つの列が返される場合があります。列名と、理想的には (必須ではありませんが) その型を知る必要があります。

これはユーザーが入力したフィールドであるため、使用される SQL ステートメントを制御することはできません。C# では、接続を開き、そのステートメントを使用して SqlCommand を作成するのは非常に基本的なタスクです。必要に応じて、SQL を SqlDataReader または他の System.Data.SqlClient クラスに自由に実行できますが、実際の列の値ではなく、列を返す組み合わせが見つかりません。

誰でも助けることができますか?

これからもよろしくお願いします

4

2 に答える 2

2

あなたが求めていることはできません(簡単に)。

さらに重要なことは、ユーザーに任意の TSQL を入力させないことです (ある時点で後悔することになります...)。

代わりに、さまざまなパラメーターを入力できる「検索」フォームを作成し、必要なすべてのテーブル/列を結合するビューに対してパラメーター化されたクエリを使用します。

于 2011-05-16T00:09:37.433 に答える
0

直接的な方法はありません。SQL クエリからすべてのテーブルの名前を解析する必要があります。

それが完了したら、Information_Schemaにいくつかのクエリを記述して、探しているものの生データを取得する必要があります。

SQL Server を使用している場合は、Catalog Viewを使用することをお勧めします

元-

Select * from sys.tables where [Name] = 'MyTable'
于 2011-05-16T00:17:04.530 に答える