.net - una - poner encabezado a un datagridview
En vb.net, cómo obtener los nombres de columna de una tabla de datos (5)
Mirar
For Each c as DataColumn in dt.Columns
''... = c.ColumnName
Next
o:
dt.GetDataTableSchema (...)
Así que creo una tabla de datos de una tabla que no puedo ver directamente (es decir, usando la administración del servidor sql). Quiero encontrar los nombres de las columnas que están en la tabla de datos, ¿cuál sería la forma correcta de hacerlo?
Puede recorrer la colección de columnas de la tabla de datos.
VB
Dim dt As New DataTable()
For Each column As DataColumn In dt.Columns
Console.WriteLine(column.ColumnName)
Next
DO#
DataTable dt = new DataTable();
foreach (DataColumn column in dt.Columns)
{
Console.WriteLine(column.ColumnName);
}
¡Espero que esto ayude!
Esta es la forma de recuperar un Nombre de columna de una DataColumn:
MyDataTable.Columns(1).ColumnName
Para obtener el nombre de todos los DataColumns dentro de su DataTable:
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
Referencias
¿Tiene acceso a su base de datos? De ser así, simplemente ábrala y busque la columna y use una llamada SQL para recuperar la que necesita.
Un pequeño ejemplo en un formulario para recuperar datos de una tabla de base de datos:
El formulario contiene solo un GataGridView llamado DataGrid
Nombre de la base de datos: DB.mdf
Nombre de tabla: DBtable
Nombres de columna en la tabla: Nombre como varchar (50), Edad como int, Género como 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
Esto buscará todas las filas y columnas de su tabla de base de datos para su revisión.
Si solo quiere recuperar los nombres simplemente cambie la llamada a sql con: "SELECT Name FROM DBtable" de esta manera, DataGridView solo mostrará los nombres de las columnas.
No soy más que un novato, pero recomendaría encarecidamente deshacerse de estos autogegadores de generación automática. Al usar SQL tienes acceso completo a tu base de datos y lo que sucede.
Además, una última cosa, si su base de datos no usa SQLClient, simplemente cámbiela a OleDB.
Ejemplo: " Dim conn As New SqlClient.SqlConnection
" pasa a ser: Dim conn As New OleDb.OleDbConnection
'' 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
Espero que esto pueda ser de ayuda!