Torna al Thread

Private Sub Demo(ByVal ConnectionString As String) Using cn As New OleDbConnection(ConnectionString) Dim Result = SchemaInfo(cn.ConnectionString, "Table1") For Each row As DataRow In Result.Rows Console.WriteLine("Name={0} Type={1}", row("ColumnName"), row("DataType")) Next End Using End Sub Public Function SchemaInfo(ByVal ConnectionString As String, ByVal TableName As String) As DataTable Dim dt As New DataTable With {.TableName = "Schema"} dt.Columns.AddRange( _ New DataColumn() _ { _ New DataColumn("ColumnName", GetType(System.String)), _ New DataColumn("DataType", GetType(System.String)) _ } _ ) Using cn As New OleDbConnection(ConnectionString) Using cmd As New OleDbCommand("SELECT * FROM " & TableName, cn) cn.Open() Dim Reader As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.KeyInfo) Dim schemaTable = Reader.GetSchemaTable() schemaTable.TableName = "TableSchema" Dim sw As New IO.StringWriter schemaTable.WriteXml(sw) Dim Doc = New XDocument Doc = XDocument.Parse(sw.ToString) Dim query = _ ( _ From T In Doc...<TableSchema> _ Select _ Name = T.<ColumnName>.Value, _ DataType = T.<DataType>.Value.Split(","c)(0).Replace("System.", "") _ ).ToList For Each item In query Dim Row As DataRow Row = dt.NewRow Row("ColumnName") = item.Name Row("DataType") = item.DataType dt.Rows.Add(Row) Next End Using End Using Return dt End Function
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5