1

SELECTcolumn_namesがわからない場合、ステートメントをどのように処理できますか

私が次のクエリを持っている場合、私の少しの経験で

 SELECT * FROM emp 

私はします

    While sqlReader.Read()
        Dim name as string = sqlReader.Item("emp_name")
    End While

質問

しかし、取得しているものの数と列の名前がわからない場合 は、これを処理 する方法があり、x個の列とその名前が選択されていることがわかります。

そして、これを文字列のリストとして返します。これが重要かどうかはわかりませんが、これをWebサービスとして実行しています。

4

3 に答える 3

3

FieldCountのプロパティを使用してSystem.Data.SqlClient.SqlDataReader、フィールドの数を取得できます。次に、プロパティを使用しGetNameてフィールド名を取得できます。

Dim Names as New list(of String) 
For i as integer = 0 to sqlReader.FieldCount -1 
    Names.Add(sqlReader.GetName(i))
Next

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx

于 2012-11-02T14:53:31.493 に答える
2

SqlDataReaderクラスには、列の数を通知するFieldCountプロパティと、列の名前を通知するGetNameメソッドがあります。

于 2012-11-02T14:52:00.267 に答える
1

SQL Serverを使用している場合は、sys.columnsビューにクエリを実行できます。

SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('tablename');

この例では、tablenameは「emp」になります。

別のデータベースを使用している場合は、INFORMATION_SCHEMA.COLUMNSビューを試してみてください。このビューは、同様の情報を返します。

于 2012-11-02T14:52:42.667 に答える