The following code will not update and commit the update to a SQL Database Table. Now my where statement is looking for a Date field. Could this be the problem?
Dim DBConnAs SqlConnection
Dim DBAddAsNew SqlCommand
Dim strConnectAsString = ConfigurationManager.ConnectionStrings("ProtoCostConnectionString").ConnectionString
DBConn =New SqlConnection(strConnect)
'Update a existing row in the table
DBAdd.CommandText ="UPDATE [D12_MIS] SET [CSJ] = @.CSJ, [EST_DATE] = @.EST_DATE, [RECORD_LOCK_FLAG] = @.RECORD_LOCK_FLAG, [EST_CREATE_BY_NAME] = @.EST_CREATE_BY_NAME, [EST_REVIEW_BY_NAME] = @.EST_REVIEW_BY_NAME, [m2_1] = @.m2_1, [m2_2_date] = @.m2_2_date, [m2_3_date] = @.m2_3_date, [m2_4_date] = @.m2_4_date, [m2_5] = @.m2_5, [m3_1a] = @.m3_1a, [m3_1b] = @.m3_1b, [m3_2a] = @.m3_2a, [m3_2b] = @.m3_2b, [m3_3a] = @.m3_3a, [m3_3b] = @.m3_3b WHERE [EST_DATE] = " & EstDateText
With DBAdd.Parameters
.AddWithValue("@.CSJ", pvCSJ.Text)
.AddWithValue("@.EST_DATE", tmp1Date)
.AddWithValue("@.RECORD_LOCK_FLAG", tmpRecordLock)
.AddWithValue("@.EST_CREATE_BY_NAME", CheckedCreator)
.AddWithValue("@.EST_REVIEW_BY_NAME", CheckedReviewer)
.AddWithValue("@.m2_1", vb2_1)
.AddWithValue("@.m2_2_date", tmp2Date)
.AddWithValue("@.m2_3_date", tmp3Date)
.AddWithValue("@.m2_4_date", tmp4Date)
.AddWithValue("@.m2_5", vb2_5)
.AddWithValue("@.m3_1a", vb3_1a)
.AddWithValue("@.m3_1b", vb3_1b)
.AddWithValue("@.m3_2a", vb3_2a)
.AddWithValue("@.m3_2b", vb3_2b)
.AddWithValue("@.m3_3a", vb3_3a)
.AddWithValue("@.m3_3b", vb3_3b)
EndWith
DBAdd.Connection = DBConn
DBAdd.Connection.Open()
Dim rowsAffectedAsInteger = 0
Try
rowsAffected = DBAdd.ExecuteNonQuery
Catch exAs Exception
tb2_2.Text = ex.ToString()
Finally
DBAdd.Connection.Close()
EndTry
tb2_1.Text = rowsAffected
Yes. Since a date column (datetime) consists of both date and time portion, you WHERE clause will attempt to match both the date and the time values. Chances are, you don't have the time portion specified (or a different one), so nothing will be matched. Instead, try to use the format:
WHERE [EST_DATE] >= '02/18/2006 12:00:00 AM' AND [EST_DATE] <= '02/18/2006 11:59:59 PM'
or
WHERE [EST_DATE] >= '02/18/2006' AND [EST_DATE]< '02/19/2006'
Notice that when yo specify only the date portion, the time portion defaults to 12:00:00 AM, so the second method uses less-than (<) the following date of the date you're trying to filter.|||
WHERE [EST_DATE] = " & EstDateText .
I think the problem is that you have not enclosed the date with single quotes. Try the following one
WHERE [EST_DATE] = '" & EstDateText & "'"
|||That was the problem of missing quotes, thanks!|||Change the date to a parameter, and you wouldn't have had that problem.
No comments:
Post a Comment