VB.NET Classes from SQL DB
How to automatically generate classes for your database tables
Introduction
This application is for developers who want to gain time by automatically generating their Object Classes from the SQL database.
Background
I was looking for a migration from a VB application that uses modules and functions and make it more Object Oriented using Classes. I used several recursive loops in order to speed the process.
Using the Code
This application is very straight forward. All you need to do is:
- Identify your connection string to the SQL Server
- Identify the database you wish for the classes to be generated
The main select
statements to get the database tables and columns are given below:
Dim con As New SqlConnection(TextBox1.Text)
Dim con1 As New SqlConnection(TextBox1.Text)
Dim dbase As String
dbase = TextBox2.Text
Dim cmd As New SqlCommand_
("Select " & dbase & ".INFORMATION_SCHEMA.TABLES.TABLE_NAME " & _
"from " & dbase & ".INFORMATION_SCHEMA.TABLES", con)
con.Open()
Dim cols = 0
Dim dbr As SqlDataReader = cmd.ExecuteReader()
Dim i = 0
While dbr.Read()
TableArray(i) = dbr.Item("Table_Name")
RichTextBox1.AppendText(TableArray(i) & vbCrLf)
Dim ColArr(20) As String
Dim sw As New StreamWriter(TableArray(i) & ".vb")
Dim cmdcol As New SqlCommand("Select INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME" & _
" from " & _
dbase & ".INFORMATION_SCHEMA.COLUMNS " & _
"where table_name = N'" & TableArray(i) & "'", con1)
con1.Open()
Dim dcr As SqlDataReader = cmdcol.ExecuteReader()
Dim j = 0
sw.WriteLine("Public Class " & TableArray(i))
sw.WriteLine()
While dcr.Read()
ColArr(j) = dcr.Item("Column_Name")
RichTextBox1.AppendText(" * " & ColArr(j) & vbCrLf)
sw.WriteLine("Public m" & ColArr(j) & " as string")
j += 1
End While
Points of Interest
I am trying to reach faster development time by creating these small tools.
It is interesting for now, and I am working on some other tool to create the database functions:
Insert
Update
Delete
- etc.
History
This is the first version of this app. I will keep you posted on future releases.