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)


Reply With Quote
