2011-07-22 34 views
12

私は直接見ることができない(つまり、SQLサーバ管理を使用する)テーブルからデータテーブルを作成します。私はデータテーブルにある列名を探したいのですが、これを行う正しい方法は何でしょうか?vb.netでは、データテーブルからカラム名を取得する方法

MyDataTable.Columns(1).ColumnName 

があなたのDataTable内のすべてのDataColumnsの名を取得するには:

答えて

18

は、これはのDataColumnから列名を取得する方法である

Dim name(DT.Columns.Count) As String 
Dim i As Integer = 0 
For Each column As DataColumn In DT.Columns 
    name(i) = column.ColumnName 
    i += 1 
Next 

参照

+0

文字列()=新しい文字列(AS薄暗い名){} testTable.ColumnsでのDataColumnとして、各列私は文字列配列に文字列を追加しようとしている= column.ColumnName 次 名の文字列()=新しい文字列(){} として名前、私はdoinの何ですここで間違っている? –

+0

私があなたが信じていることを達成するために私のコードサンプルを更新しました。 –

1

For Each c as DataColumn in dt.Columns 
    '... = c.ColumnName 
Next 

かを見てみましょう。

dt.GetDataTableSchema(...)

2

あなたはできるのDataTableの列コレクションをループ。

VB

Dim dt As New DataTable() 
For Each column As DataColumn In dt.Columns 
    Console.WriteLine(column.ColumnName) 
Next 

C#

DataTable dt = new DataTable(); 
foreach (DataColumn column in dt.Columns) 
{ 
Console.WriteLine(column.ColumnName); 
} 

・ホープ、このことができます!

0

データベースにアクセスできますか。データベースを開いて列を検索し、SQL呼び出しを使用して必要なものを取得しますか。

データベーステーブルからデータを取得するために、フォーム上の短い例:DB.mdf

テーブル名:DBTABLE

フォームのみGataGridViewという名前のDataGridに

データベース名が含まれています

テーブル内の列名:Name as varchar(50)、Age as int、Gender as bit。

Private Sub DatabaseTest_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    Public ConString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\{username}\documents\visual studio 2010\Projects\Userapplication prototype v1.0\Userapplication prototype v1.0\Database\DB.mdf;" & "Integrated Security=True;User Instance=True" 
    Dim conn As New SqlClient.SqlConnection 
    Dim cmd As New SqlClient.SqlCommand 
    Dim da As New SqlClient.SqlDataAdapter 
    Dim dt As New DataTable 
    Dim sSQL As String = String.Empty 
    Try 
     conn = New SqlClient.SqlConnection(ConString) 
     conn.Open() 'connects to the database 
     cmd.Connection = conn 
     cmd.CommandType = CommandType.Text 
     sSQL = "SELECT * FROM DBtable" 'Sql to be executed 
     cmd.CommandText = sSQL 'makes the string a command 
     da.SelectCommand = cmd 'puts the command into the sqlDataAdapter 
     da.Fill(dt) 'populates the dataTable by performing the command above 
     Me.DataGrid.DataSource = dt 'Updates the grid using the populated dataTable 

     'the following is only if any errors happen: 
     If dt.Rows.Count = 0 Then 
      MsgBox("No record found!") 
     End If 
    Catch ex As Exception 
     MsgBox(ErrorToString) 
    Finally 
     conn.Close() 'closes the connection again so it can be accessed by other users or programs 
    End Try 
End Sub 

これは、レビューのためにデータベーステーブルからすべての行と列をフェッチします。
名前をフェッチする場合は、SQL呼び出しを次のように変更します。 "SELECT Name FROM DBtable"このようにして、DataGridViewは列名のみを表示します。

私は唯一の新人ですが、私はこれらのウィザードを自動生成する論文を取り除くことを強く推奨します。 SQLを使用すると、データベースへの完全なアクセス権が得られます。
最後に、データベースがSQLClientを使用しない場合は、OleDBに変更してください。

例: "Dim conn As New SqlClient.SqlConnectionは" 次のようになります。これは助けることができDim conn As New OleDb.OleDbConnection

0
' i modify the code for Datatable 

For Each c as DataColumn in dt.Columns 
For j=0 To _dataTable.Columns.Count-1 
      xlWorksheet.Cells (i+1, j+1) = _dataTable.Columns(j).ColumnName 
Next 
Next 

願っています! IMが暗くする文字列を追加するので、これを好きではないtestTable.Columns 名= column.ColumnName 次にでのDataColumnとして各列の

関連する問題