2016-09-26 6 views
0

私はテーブル内の単一の列の名前を取得しようとしていると並べ替えのクエリで使用します。私が達成しようとしているものの例としてVB.NET - どのテーブルでも使用されているクエリのMS Accessテーブルで1つの列の名前を取得する方法はありますか?

は、以下のようになります:「姓」と「姓」:

TableAのは2列があります。

私はSELECT * FROM TableA WHERE LIKE [column 2 (LastName)]にクエリ(、あまりにも文字通りこのクエリをしてください取ることはありません)

が次にTableBのは2列にもしてあります、「姓」と「姓」。見られるように、2番目の列名は両方の表で異なります。

コードのクエリをTableBの "SurName"列のクエリに変更する必要があります。

どのテーブルでも列を呼び出す方法があり、それを変数に格納してクエリで使用すると、使用されているテーブルで「普遍的な」使用が可能になるのではないかと思っていましたか?

テーブル内のすべての列名を取得した結果を検索しました。私は列名を1つだけ探しようとしています。

ありがとうございます。

+0

はあなたが参照することを好むだろう名前の代わりに序数でフィールドを入力しますか? – Beth

+0

そうだと思います。名前が違うのですが、列の順序は同じですか? 例として使用したものと似ています。 – Reginald

+0

列は、名前の代わりに0から始まる数字の序数でいつでも参照できます。 – Beth

答えて

0

データテーブルから特定の列名を呼び出すことができます。つまり、まず情報をdbからdatatableに渡す必要があります。例:

Dim Con as New SqlConnection("ur connection str") 
Dim da as New SqlDataAdapter("Select * from [table]",Con) 
Dim dt as New Datatable 
da.Fill(dt) 

Me.Label1.Text = dt.Columns(1).ColumnName 
+0

それは私にそれについてのやり方を理解するのを助けてくれました。しかし、私はそれを実行しようとすると、私はそれが列を見つけることができないと言うエラーを取得...正直言って変なです:( – Reginald

+0

あなたのテーブルがいくつの列?カウントは常に0から始まることを覚えています。 3列の場合は、dt.Columns(0).ColumnName、dt.Columns(1).ColumnName、dt.Columns(2).ColumnNameのように呼び出すことができます。おそらくここにコードを投稿できます:) –

+0

Dim lastnamecol As String = dts.Columns(2).ColumnName。これは私が前に述べたようにコラムを試してみるためのものです。私が目指している文字列クエリは、 "SELECT * FROM tblContacts WHERE '%"&lastnamecol& "LIKE'%"&TextBox3.Text& "%" " – Reginald

1

まず、「修正」あなたのユーザーのために、それは簡単なものを作るために設計:

CREATE VIEW People (family_name, first_name) AS 
SELECT LastName, FirstName 
    FROM TableA 
UNION 
SELECT SurName, FirstName 
    FROM TableB; 

その後クエリが明らかになった:

SELECT * 
    FROM People 
WHERE family_name ALIKE 'Reg%'; 
関連する問題