Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

checkedlistbox and tabcontrol

Status
Not open for further replies.

larosa

MIS
Dec 20, 1999
7
0
0
US
I am using the tabcontrol object to display records of a dataset and then displaying the selected row on the next tab "form". I can then change data on the selected row and acceptchanges to the datarow I have defined to hold the data on the first tabcontrol "form", but can't get the changes to update in the sql table. I have tried .update, writing a batch insert routine and everything else I can find in the books we own. I have also added a datagrid to the third Tab "form" and everything works fine. I can update, delete and add rows to the table.

I can post code online or off if desired. This has made me crazy for over a week now, and being very new to vb and .net but an experience programmer doesn't help either.

Thanks in advance.
Mark
 
Here is my code, please be kind, this is new to me.
Thanks,
Mark
*********************************************
Public Class Form1
Inherits System.Windows.Forms.Form
Public drCurrent, drConCurrent, drRegCurrent As System.Data.DataRow
Public cmdUpdate As System.Data.SqlClient.SqlCommand
Public drCurIDX As Integer

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call
Me.daPlayers.Fill(Me.DsBaseball2.Players)
Me.daContacts.Fill(Me.DsBaseball2.Contacts)
Me.daDivisions.Fill(Me.DsBaseball2.Divisions)
Me.daLeague.Fill(Me.DsBaseball2.League)
Me.daRegistrations.Fill(Me.DsBaseball2.Registration)
Me.daSeasons.Fill(Me.DsBaseball2.Seasons)
Me.daVolunteers.Fill(Me.DsBaseball2.Volunteers)
Me.daVolData.Fill(Me.DsBaseball2.VolunteerData)
Me.daTeams.Fill(Me.DsBaseball2.Teams)
Me.DsBaseball2.Players.DefaultView.Sort = "PlayerID"



End Sub
'''
''' The rest of this region has not been changed
'''
#End Region
#Region "Utility Functions"

Private Sub UpdateDisplay()

Dim curRow, lastRow As Integer

curRow = Me.CheckedListBox1.SelectedIndex + 1
lastRow = Me.CheckedListBox1.Items.Count

Me.txtPosition.Text = "Player "
Me.txtPosition.Text &= curRow
Me.txtPosition.Text &= " of "
Me.txtPosition.Text &= lastRow

End Sub
'
' Not used presently
'
Function GetRow() As DataRow
Dim bm As BindingManagerBase
Dim drv As DataRowView
Dim dr As DataRow

bm = Me.BindingContext(Me.DsBaseball2, "Players")
drv = CType(bm.Current, DataRowView)
GetRow = drv.Row
End Function
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

' Adds a column to table Players to join First and Last names to produce a list to select from.
'Dim PlayerName As System.Data.DataColumn
'Me.daPlayers.Fill(Me.DsBaseball2.Tables("Players"))
'PlayerName = New System.Data.DataColumn("Name")
'PlayerName.DataType = System.Type.GetType("System.String")
'PlayerName.Expression = "FirstName + ' ' + LastName"
'Me.DsBaseball2.Tables("players").Columns.Add(PlayerName)
'Me.CheckedListBox1.DataSource = Me.DsBaseball2.Tables("players")
'Me.CheckedListBox1.DisplayMember = "Name"

Label1.Text = "Terryville/Plymouth" & vbCrLf & "Little League" & vbCrLf & "ID# 02070614" & vbCrLf _
& vbCrLf & vbCrLf & vbCrLf & "President" & vbCrLf & "Larry Tomasetti"

UpdateDisplay()

End Sub


Private Sub CheckedListBox1_ItemCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck

drCurrent = Me.CheckedListBox1.SelectedItem.Row

End Sub


Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged

Dim strMsg As String
Dim PID As Integer

UpdateDisplay()

If TabControl1.SelectedIndex = 1 Then
Me.DsBaseball2.Players.FindByPlayerID(PID)
' Me.drCurrent.Table.AcceptChanges()
Move_Player_To_Screen()
End If

If TabControl1.SelectedIndex = 2 Then
Move_Registration_to_Screen()
End If

If TabControl1.SelectedIndex = 3 Then
Move_Contact_to_Screen()
End If

End Sub
'
' Player Screen Controls
'
Private Sub Move_Player_To_Screen()
' To set error messages do this
' If me.txtName = " " then
' me.epControl.SetError(Me.txtName, "You Must enter a name")
' e.cancel = True
' Else
' me.epControl.SetError(Me.txtName, "")
' End If

'Me.txtPlayerID.Text = drCurrent.Item("PlayerID")
'Me.DsBaseball2.Players.FindByPlayerID(drCurrent.Item("PlayerID"))


Me.txtPlayerID.Text = drCurrent.Item("PlayerID")
Me.txtFirstName.Text = drCurrent.Item("FirstName")
Me.txtLastName.Text = drCurrent.Item("LastName")

If IsDBNull(drCurrent.Item("Address")) Then
Me.txtAddress.Text = " "
Else
Me.txtAddress.Text = drCurrent.Item("Address")
End If

If IsDBNull(drCurrent.Item("StateOrProvince")) Then
Me.txtState.Text = " "
Else
Me.txtState.Text = drCurrent.Item("StateOrProvince")
End If

If IsDBNull(drCurrent.Item("City")) Then
Me.txtCity.Text = " "
Else
Me.txtCity.Text = drCurrent.Item("City")
End If

If IsDBNull(drCurrent.Item("PostalCode")) Then
Me.txtZip.Text = ""
Else
Me.txtZip.Text = drCurrent.Item("PostalCode")
End If

If IsDBNull(drCurrent.Item("Comments")) Then
Me.txtComments.Text = " "
Else
Me.txtComments.Text = drCurrent.Item("Comments")
End If

If IsDBNull(drCurrent.Item("Email")) Then
Me.txtEmail.Text = " "
Else
Me.txtEmail.Text = drCurrent.Item("Email")
End If

If IsDBNull(drCurrent.Item("EmailName")) Then
Me.txtEmailName.Text = " "
Else
Me.txtEmailName.Text = drCurrent.Item("EmailName")
End If

If IsDBNull(drCurrent.Item("HomePhone")) Then
Me.txtHomePhone.Text = " "
Else
Me.txtHomePhone.Text = drCurrent.Item("HomePhone")
End If

If IsDBNull(drCurrent.Item("Birthdate")) Then
Me.DOB.Value = Now()
Else
Me.DOB.Value = drCurrent.Item("Birthdate")
End If

If drCurrent.Item("Gender") = "Boy" Then
Me.rbBoy.Checked = True
Me.rbGirl.Checked = False
Else
Me.rbBoy.Checked = False
Me.rbGirl.Checked = True
End If

End Sub

Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
Me.CheckedListBox1.SelectedIndex = 0
drCurrent = Me.CheckedListBox1.SelectedItem.Row
Move_Player_To_Screen()

End Sub

Private Sub btnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrev.Click

If Me.CheckedListBox1.SelectedIndex = 0 Then
txtMsg.Text = "First Record is Being Displayed."
Else
txtMsg.Text = ""
Me.CheckedListBox1.SelectedIndex = Me.CheckedListBox1.SelectedIndex - 1
End If

drCurrent = Me.CheckedListBox1.SelectedItem.Row

Move_Player_To_Screen()

End Sub

Private Sub BtnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNext.Click

If Me.CheckedListBox1.SelectedIndex = Me.CheckedListBox1.Items.Count - 1 Then
txtMsg.Text = "Last Record is Being Displayed."
Else
txtMsg.Text = ""
Me.CheckedListBox1.SelectedIndex = Me.CheckedListBox1.SelectedIndex + 1
End If

drCurrent = Me.CheckedListBox1.SelectedItem.Row


Move_Player_To_Screen()

End Sub

Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click

Me.CheckedListBox1.SelectedIndex = Me.CheckedListBox1.Items.Count - 1

drCurrent = Me.CheckedListBox1.SelectedItem.Row

Move_Player_To_Screen()

End Sub
'
' Contact Screen Control
'
Private Sub Move_Contact_to_Screen()

txtConPlayer.Text = (Trim(txtFirstName.Text) & " " & Trim(txtLastName.Text))

txtConID.Text = txtPlayerID.Text

If lstCons.SelectedItems.Count = 0 Then
' No Contacts to Display - Display Blank Screen
Me.txtConName.Text = " "
Me.txtConEmail.Text = " "
Me.txtConPhone.Text = " "
Me.txtConRel.Text = " "
GoTo lstCons_Exit
End If

If IsDBNull(lstCons.SelectedItem("Contact")) Then
Me.txtConName.Text = " "
Else
txtConName.Text = lstCons.SelectedItem("Contact")
End If

If IsDBNull(lstCons.SelectedItem("Email")) Then
Me.txtConEmail.Text = " "
Else
txtConEmail.Text = lstCons.SelectedItem("Email")
End If

If IsDBNull(lstCons.SelectedItem("PhoneNumber")) Then
Me.txtConPhone.Text = " "
Else
txtConPhone.Text = lstCons.SelectedItem("PhoneNumber")
End If

If IsDBNull(lstCons.SelectedItem("Relation")) Then
Me.txtConRel.Text = " "
Else
txtConRel.Text = lstCons.SelectedItem("Relation")
End If

lstCons_Exit:

End Sub

Private Sub btnConFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConFirst.Click

Me.lstCons.SelectedIndex = 0
drConCurrent = Me.lstCons.SelectedItem.Row
Move_Contact_to_Screen()

End Sub

Private Sub btnConPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConPrev.Click

If Me.lstCons.SelectedIndex = 0 Then
txtConMsg.Text = "First Record is Being Displayed."
Else
txtConMsg.Text = ""
Me.lstCons.SelectedIndex = Me.lstCons.SelectedIndex - 1
End If

drConCurrent = Me.lstCons.SelectedItem.Row

Move_Contact_to_Screen()

End Sub

Private Sub btnConNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConNext.Click

If Me.lstCons.SelectedIndex = Me.lstCons.Items.Count - 1 Then
txtConMsg.Text = "Last Record is Being Displayed."
Else
txtConMsg.Text = ""
Me.lstCons.SelectedIndex = Me.lstCons.SelectedIndex + 1
End If

drConCurrent = Me.lstCons.SelectedItem.Row

Move_Contact_to_Screen()

End Sub

Private Sub btnConLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConLast.Click

Me.lstCons.SelectedIndex = Me.lstCons.Items.Count - 1

drConCurrent = Me.lstCons.SelectedItem.Row

Move_Contact_to_Screen()

End Sub
'
' Registration Screen Control
'
Private Sub Move_Registration_to_Screen()

txtRegName.Text = (Trim(txtFirstName.Text) & " " & Trim(txtLastName.Text))
txtRegID.Text = txtPlayerID.Text

If IsDBNull(lstRegs.SelectedItem("RegistrationYear")) Then
Me.txtRegYear.Text = " "
Else
Me.txtRegYear.Text = lstRegs.SelectedItem("RegistrationYear")
End If

If IsDBNull(lstRegs.SelectedItem("Season")) Then
Me.txtRegSeason.Text = " "
Else
Me.txtRegSeason.Text = lstRegs.SelectedItem("Season")
End If

If IsDBNull(lstRegs.SelectedItem("LeagueName")) Then
Me.txtRegLeagueName.Text = " "
Else
Me.txtRegLeagueName.Text = lstRegs.SelectedItem("LeagueName")
End If

If IsDBNull(lstRegs.SelectedItem("LeagueAge")) Then
Me.txtRegLeagueAge.Text = " "
Else
Me.txtRegLeagueAge.Text = lstRegs.SelectedItem("LeagueAge")
End If

If IsDBNull(lstRegs.SelectedItem("DivisionName")) Then
Me.txtRegDiv.Text = " "
Else
Me.txtRegDiv.Text = lstRegs.SelectedItem("DivisionName")
End If

If IsDBNull(lstRegs.SelectedItem("Team")) Then
Me.txtRegTeam.Text = " "
Else
Me.txtRegTeam.Text = lstRegs.SelectedItem("Team")
End If

If IsDBNull(lstRegs.SelectedItem("Medical")) Then
Me.txtRegMed.Text = " "
Else
Me.txtRegMed.Text = lstRegs.SelectedItem("Medical")
End If

If IsDBNull(lstRegs.SelectedItem("Comments")) Then
Me.txtRegComments.Text = " "
Else
Me.txtRegComments.Text = lstRegs.SelectedItem("Comments")
End If

If IsDBNull(lstRegs.SelectedItem("RegistrationDate")) Then
Me.RegDate.Value = Now()
Else
Me.RegDate.Value = lstRegs.SelectedItem("RegistrationDate")
End If

If IsDBNull(lstRegs.SelectedItem("RegFee")) Then
Me.txtRegFee.Text = " "
Else
Me.txtRegFee.Text = CInt(lstRegs.SelectedItem("RegFee")).ToString("c")
End If

If IsDBNull(lstRegs.SelectedItem("CheckNumber")) Then
Me.txtCheckNumber.Text = " "
Else
Me.txtCheckNumber.Text = lstRegs.SelectedItem("CheckNumber")
End If

If IsDBNull(lstRegs.SelectedItem("CandyBoxes")) Then
Me.txtCandyBoxes.Text = " "
Else
Me.txtCandyBoxes.Text = lstRegs.SelectedItem("CandyBoxes")
End If

If IsDBNull(lstRegs.SelectedItem("DonationAmount")) Then
Me.txtDonAmt.Text = " "
Else
Me.txtDonAmt.Text = CInt(lstRegs.SelectedItem("DonationAmount")).ToString("c")
End If

If IsDBNull(lstRegs.SelectedItem("CandyDollars")) Then
Me.txtCandyDollars.Text = " "
Else
Me.txtCandyDollars.Text = CInt(lstRegs.SelectedItem("CandyDollars")).ToString("c")
End If

If lstRegs.SelectedItem("Paid") = True Then
Me.cbRegPaid.Checked = True
Else
Me.cbRegPaid.Checked = False
End If

If lstRegs.SelectedItem("CandyBuyout") = True Then
Me.cbRegBuyout.Checked = True
Else
Me.cbRegBuyout.Checked = False
End If

If lstRegs.SelectedItem("CandyMoney") = True Then
Me.cbRegCandyMoney.Checked = True
Else
Me.cbRegCandyMoney.Checked = False
End If

End Sub

Private Sub btnRegFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegFirst.Click

Me.lstRegs.SelectedIndex = 0

drRegCurrent = Me.lstRegs.SelectedItem.Row

txtRegMsg.Text = ""

Move_Registration_to_Screen()

End Sub

Private Sub btnRegPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegPrev.Click

If Me.lstRegs.SelectedIndex = 0 Then
txtRegMsg.Text = "First Record is Being Displayed."
Else
txtRegMsg.Text = ""
Me.lstRegs.SelectedIndex = Me.lstRegs.SelectedIndex - 1
End If

drRegCurrent = Me.lstRegs.SelectedItem.Row

Move_Registration_to_Screen()

End Sub

Private Sub btnRegNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegNext.Click

If Me.lstRegs.SelectedIndex = Me.lstRegs.Items.Count - 1 Then
txtRegMsg.Text = "Last Record is Being Displayed."
Else
txtRegMsg.Text = ""
Me.lstRegs.SelectedIndex = Me.lstRegs.SelectedIndex + 1
End If

drRegCurrent = Me.lstRegs.SelectedItem.Row

Move_Registration_to_Screen()

End Sub

Private Sub btnRegLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegLast.Click

Me.lstRegs.SelectedIndex = Me.lstRegs.Items.Count - 1

drRegCurrent = Me.lstRegs.SelectedItem.Row

txtRegMsg.Text = ""

Move_Registration_to_Screen()

End Sub

Private Sub btnPlayerUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlayerUpdate.Click

Dim drMsg As String

drCurrent.Item("FirstName") = Me.txtFirstName.Text
drCurrent.Item("LastName") = Me.txtLastName.Text

If IsDBNull(Me.txtAddress.Text) Then
drCurrent.Item("Address") = " "
Else
drCurrent.Item("Address") = Me.txtAddress.Text
End If

If IsDBNull(Me.txtState.Text) Then
drCurrent.Item("StateOrProvince") = " "
Else
drCurrent.Item("StateOrProvince") = Me.txtState.Text
End If

If IsDBNull(Me.txtCity.Text) Then
drCurrent.Item("City") = " "
Else
drCurrent.Item("City") = Me.txtCity.Text
End If

If IsDBNull(Me.txtZip.Text) Then
drCurrent.Item("PostalCode") = ""
Else
drCurrent.Item("PostalCode") = Me.txtZip.Text
End If

If IsDBNull(Me.txtComments.Text) Then
drCurrent.Item("Comments") = " "
Else
drCurrent.Item("Comments") = Me.txtComments.Text
End If

If IsDBNull(Me.txtEmail.Text) Then
drCurrent.Item("Email") = " "
Else
drCurrent.Item("Email") = Me.txtEmail.Text
End If

If IsDBNull(Me.txtEmailName.Text) Then
drCurrent.Item("EmailName") = " "
Else
drCurrent.Item("EmailName") = Me.txtEmailName.Text
End If

If IsDBNull(Me.txtHomePhone.Text) Then
drCurrent.Item("HomePhone") = " "
Else
drCurrent.Item("HomePhone") = Me.txtHomePhone.Text
End If

If IsDBNull(Me.DOB.Value) Then
drCurrent.Item("Birthdate") = Now()
Else
drCurrent.Item("Birthdate") = Me.DOB.Value
End If

If Me.rbBoy.Checked = True Then
drCurrent.Item("Gender") = "Boy"
Else
drCurrent.Item("Gender") = "Girl"
End If

Me.drCurrent.Table.AcceptChanges()

Me.daPlayers.Update(Me.DsBaseball2.Players)

'Update_Player()

End Sub

Private Sub Update_Player()

Dim rowPlayers As DataRow
rowPlayers = Me.DsBaseball2.Tables("Players").Rows.Find(drCurrent.Item("PlayerID"))
If rowPlayers.RowError = "" Then
rowPlayers.BeginEdit()
' rowPlayers("PlayerID") = drCurrent.Item("PlayerID")
rowPlayers("FirstName") = drCurrent.Item("FirstName")
rowPlayers("LastName") = drCurrent.Item("LastName")
rowPlayers("Address") = drCurrent.Item("Address")
rowPlayers("StateOrProvince") = drCurrent.Item("StateOrProvince")
rowPlayers("City") = drCurrent.Item("City")
rowPlayers("PostalCode") = drCurrent.Item("PostalCode")
rowPlayers("Comments") = drCurrent.Item("Comments")
rowPlayers("Email") = drCurrent.Item("Email")
rowPlayers("EmailName") = drCurrent.Item("EmailName")
rowPlayers("HomePhone") = drCurrent.Item("HomePhone")
rowPlayers("Birthdate") = drCurrent.Item("Birthdate")
rowPlayers("Gender") = drCurrent.Item("Gender")
rowPlayers.EndEdit()
End If

GoTo Good_Update

Skip_Update:
Dim Pmsg As String = "Player Update error"
GoTo P_Msg

Good_Update:
Pmsg = "Update Succeeded"
P_Msg:
MessageBox.Show(Pmsg)
End Sub



Private Sub Quit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Quit.Click
Close()
End Sub


End Class
************************************************
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top