How Do I Create Columns In A Database?
I am having trouble adding columns to a database. I am not sure how to integrate an "ALTER TABLE" command to my current code. If anyone can help me, I would be very appreciative. Thanks
My code is as follows:
Code:
Public Sub AddClass()
Dim intClassNumber As Integer = 1
Dim intCurrentRow As Integer = 0
Dim intTotalClasses As Integer = m_DataTableClass.Rows.Count
Dim strClassNameSearch As String
Dim strClassName As String = frmAddClass.txtClassName.Text
Dim tmeStartTime As DateTime = frmAddClass.dtpStartTime.Value
Dim intStartingInterval As Integer = frmAddClass.txtStartingInterval.Text
Dim intLeaderInterval As Integer = frmAddClass.txtLeaderInterval.Text
Dim intConcurrentStarters As Integer = frmAddClass.txtConcurrentStarters.Text
Dim strClassColumnName As String
Dim boolExitLoop As Boolean = False
Dim drNewRow As DataRow = m_DataTableClass.NewRow()
'Add new row
drNewRow("ClassKey") = intTotalClasses + 1
drNewRow("ClassName") = strClassName
m_DataTableClass.Rows.Add(drNewRow)
m_DAClass.Update(m_DataTableClass)
intTotalClasses = 0
'Open connection if closed
If m_cnInterval.State = ConnectionState.Closed Then
MessageBox.Show("Interval Connection Was Closed")
m_cnInterval.ConnectionString = "Server=.\SQLEXPRESS; AttachDBFilename=" & strTimingFileName & ";Integrated Security = True; Connect Timeout = 30;" & "User Instance = True"
m_cnInterval.Open()
m_DAInterval = New SqlDataAdapter("Select * From Interval", m_cnInterval)
m_CBInterval = New SqlCommandBuilder(m_DAInterval)
m_DAInterval.Fill(m_DataTableInterval)
End If
'Find total classes
Do While boolExitLoop = False
Try
strClassNameSearch = "Class " & intClassNumber
If m_DataTableInterval.Rows(intCurrentRow).Item(strClassNameSearch) <> "" Then
intClassNumber += 1
intTotalClasses += 1
'strClassName = "Class " & intClassNumber
End If
Catch ex As Exception
boolExitLoop = True
MessageBox.Show("Exiting Loop At: " & intClassNumber)
End Try
Loop
Dim dcNewColumn As New DataColumn
strClassColumnName = "Class " & intClassNumber
dcNewColumn.ColumnName = strClassColumnName
dcNewColumn.AutoIncrement = False
dcNewColumn.DataType = System.Type.GetType("System.String")
dcNewColumn.ReadOnly = False
dcNewColumn.AllowDBNull = True
m_DataTableInterval.Columns.Add(dcNewColumn)
m_DataTableInterval.Rows(intCurrentRow).Item(strClassColumnName) = strClassName
dcNewColumn = Nothing
dcNewColumn = New DataColumn
strClassColumnName = "Class " & intClassNumber & " Start"
dcNewColumn.ColumnName = strClassColumnName
dcNewColumn.AutoIncrement = False
dcNewColumn.DataType = System.Type.GetType("System.DateTime")
dcNewColumn.ReadOnly = False
dcNewColumn.AllowDBNull = True
m_DataTableInterval.Columns.Add(dcNewColumn)
m_DataTableInterval.Rows(intCurrentRow).Item(strClassColumnName) = tmeStartTime
dcNewColumn = Nothing
dcNewColumn = New DataColumn
strClassColumnName = "Class " & intClassNumber & " Interval"
dcNewColumn.ColumnName = strClassColumnName
dcNewColumn.AutoIncrement = False
dcNewColumn.DataType = System.Type.GetType("System.Int32")
dcNewColumn.ReadOnly = False
dcNewColumn.AllowDBNull = True
m_DataTableInterval.Columns.Add(dcNewColumn)
m_DataTableInterval.Rows(intCurrentRow).Item(strClassColumnName) = intStartingInterval
dcNewColumn = Nothing
dcNewColumn = New DataColumn
strClassColumnName = "Class " & intClassNumber & " Leader Interval"
dcNewColumn.ColumnName = strClassColumnName
dcNewColumn.AutoIncrement = False
dcNewColumn.DataType = System.Type.GetType("System.Int32")
dcNewColumn.ReadOnly = False
dcNewColumn.AllowDBNull = True
m_DataTableInterval.Columns.Add(dcNewColumn)
m_DataTableInterval.Rows(intCurrentRow).Item(strClassColumnName) = intLeaderInterval
dcNewColumn = Nothing
dcNewColumn = New DataColumn
strClassColumnName = "Class " & intClassNumber & " Concurrent Starters"
dcNewColumn.ColumnName = strClassColumnName
dcNewColumn.AutoIncrement = False
dcNewColumn.DataType = System.Type.GetType("System.Int32")
dcNewColumn.ReadOnly = False
dcNewColumn.AllowDBNull = True
m_DataTableInterval.Columns.Add(dcNewColumn)
m_DataTableInterval.Rows(intCurrentRow).Item(strClassColumnName) = intConcurrentStarters
dcNewColumn = Nothing
dcNewColumn = New DataColumn
strClassColumnName = "Class " & intClassNumber & " Group"
dcNewColumn.ColumnName = strClassColumnName
dcNewColumn.AutoIncrement = False
dcNewColumn.DataType = System.Type.GetType("System.Int32")
dcNewColumn.ReadOnly = False
dcNewColumn.AllowDBNull = True
m_DataTableInterval.Columns.Add(dcNewColumn)
m_DataTableInterval.Rows(intCurrentRow).Item(strClassColumnName) = 1
MessageBox.Show("Classes Inserted")
'************ Datatable Reflects Added Columns, But Database Does Not Update *************
m_DAInterval.Update(m_DataTableInterval)