I have a form with multiple fields. The form can either be in edit mode or new record mode depending on the value of Session("ConsultantTimeID"
)
Adding a new record works fine. However, if an existing record is passed to the form (i.e. Session("...ID") = 78), the new values are not captured. Below is my code
For instance, if I bring up a record where hours = 2.5 and I change it to 3 and set a breakpoint that assigns txtTime.Text to the parm value, it still shows 2.5
I tried setting autopostback on txtTime just to see if that might fix it, but it just reloaded the original value for the field.
I don't know if this is relevant, but to populate the form (in edit mode), I fill a dataset and use it's only datarow to populate the various fields. I'll put that code below just in case anyone needs it.
Thanks so much for any help!
---------------save code----------------------
--
Dim cmd As SqlCommand, StoredProc As String
'put code here to update the record if that's what's happening...
If Session("ConsultantTimeID"
) = 0 Then
StoredProc = "InsertConsultantTimeRecor
ds"
Else
StoredProc = "UpdateConsultantTimeRecor
ds"
End If
'Try
cmd = New SqlCommand(StoredProc, Session("cn"))
cmd.CommandType = CommandType.StoredProcedur
e
'add stored proc parameters
If Session("ConsultantTimeID"
) <> 0 Then
cmd.Parameters.Add("@Consu
ltantTimeI
D", Session("ConsultantTimeID"
))
End If
cmd.Parameters.Add("@Clien
tID", frmClientID)
cmd.Parameters.Add("@Proje
ctID", drpProjects.SelectedItem.V
alue)
cmd.Parameters.Add("@UserI
D", frmUserID)
cmd.Parameters.Add("@TaskI
D", drpTasks.SelectedItem.Valu
e)
cmd.Parameters.Add("@WorkD
ate", CDate(txtWorkDate.Text))
cmd.Parameters.Add("@EndDa
te", CDate(txtEndDate.Text))
cmd.Parameters.Add("@Hours
", txtTime.Text)
cmd.Parameters.Add("@After
Hours", IIf(chkAfterHours.Checked,
1, 0))
cmd.Parameters.Add("@Notes
", txtDescription.Text)
cmd.Parameters.Add("@Billa
ble", IIf(chkBillable.Checked, 1, 0))
cmd.Parameters.Add("@Trave
lFrom", txtTravelFrom.Text)
cmd.Parameters.Add("@Trave
lTo", txtTravelTo.Text)
cmd.Parameters.Add("@Miles
", IIf(Len(Trim(txtTravelMile
s.Text)) = 0, 0, txtTravelMiles.Text))
cmd.Parameters.Add("@Milea
geCost", CDec(IIf(Len(Trim(txtTotal
MileageCos
t.Text)) = 0, 0, txtTotalMileageCost.Text))
)
cmd.Parameters.Add("@CarRe
ntal", CDec(IIf(Len(Trim(txtCarRe
ntal.Text)
) = 0, 0, txtCarRental.Text)))
cmd.Parameters.Add("@Tolls
Parking", CDec(IIf(Len(Trim(txtTolls
Parking.Te
xt)) = 0, 0, txtTollsParking.Text)))
cmd.Parameters.Add("@Perso
nalMeals",
CDec(IIf(Len(Trim(txtPerso
nalMeals.T
ext)) = 0, 0, txtPersonalMeals.Text)))
cmd.Parameters.Add("@Busin
essExpense
s", CDec(IIf(Len(Trim(txtBusin
essExpense
s.Text)) = 0, 0, txtBusinessExpenses.Text))
)
cmd.Parameters.Add("@Custo
merComment
s", txtCustomerComments.Text)
cmd.Parameters.Add("@LastM
odified", Now)
cmd.ExecuteNonQuery()
---------------end save code----------------------
--
--------------form field populate code----------------------
-
Dim dt As DataTable, drow As DataRow
dt = TimeRecordDs.Tables(0)
drow = dt.Rows(0)
'first, figure out frmClientID
frmClientID = drow("ClientID")
'populate the project drop down for this client id
Call LoadProjectDropDown()
'the dropdowns...
drpProjects.SelectedValue = drow("projectid")
If drow("TaskID") > 0 And drow("taskID") <> Nothing Then
drpTasks.SelectedValue = drow("taskid")
Else
drpTasks.SelectedValue = 1 'general
End If
'the text fields...
txtWorkDate.Text = frmDataRow("WorkDate")
txtEndDate.Text = frmDataRow("WorkDate")
txtTime.Text = frmDataRow("Hours")
txtDescription.Text = frmDataRow("Notes")
chkBillable.Checked = frmDataRow("Billable")
chkAfterHours.Checked = frmDataRow("AfterHours")
txtTravelFrom.Text = frmDataRow("TravelFrom")
txtTravelFrom.Text = frmDataRow("TravelFrom")
txtTravelTo.Text = frmDataRow("TravelTo")
txtTravelMiles.Text = frmDataRow("Miles")
txtTotalMileageCost.Text = frmDataRow("MileageCost")
txtCarRental.Text = frmDataRow("CarRental")
txtTollsParking.Text = frmDataRow("TollsParking")
txtPersonalMeals.Text = frmDataRow("PersonalMeals"
)
txtBusinessExpenses.Text = frmDataRow("BusinessExpens
es")