in

System.Data.SQLite

An open source ADO.NET provider for the SQLite database engine

Two Date Inserts -- One works and one fails -- Why? (SOLVED)

Last post 06-16-2010 7:31 AM by rkulp. 1 replies.
Page 1 of 1 (2 items)
Sort Posts: Previous Next
  • 06-15-2010 10:30 AM

    • rkulp
    • Top 10 Contributor
    • Joined on 06-28-2008
    • Rural Coffee County, Tennessee
    • Posts 73

    Two Date Inserts -- One works and one fails -- Why? (SOLVED)

    I have two insert routines to insert a record into each of two tables. The date field is typed as "Date." The first insert (new member) works while the second one (record attendance) fails. In fact, the VS2010 designer won't let me put in the date type saying it is not a DBType. It also won't take "yyyy-mm-dd" format saying it won't convert to integer. So, what do I do? The code is below.

    Public Sub InsertNewFamilyMember(ByRef LastName As String, ByRef FirstName As String, ByRef MI As String, ByRef Telephone As String, ByRef SpecialCondition As String, ByRef DLA As Date, ByRef Active As Boolean, ByRef FamilyID As Integer)

    Dim SQLParam As New SQLiteParameter("ReturnID", SqlDbType.Int)

    Dim cnMember As SQLiteConnection = New SQLiteConnection(My.Settings.conCAT)

    cnMember.Open()

    Const InsertNewMember As String = "INSERT INTO MbrData (LastName, FirstName,MI,Telephone,SpecialCondition, DateLastAttended, Active,FamilyID) VALUES (@LastName, @FirstName,@MI,@Telephone,@SpecialCondition, @DateLastAttended, @Active,@FamilyID); SELECT last_insert_rowid() as NewMbrID"

    Try

    Dim cmdNewMember As SQLiteCommand = New SQLiteCommand(InsertNewMember, cnMember)

    cmdNewMember.CommandType = CommandType.Text

    cmdNewMember.Parameters.AddWithValue("@LastName", LastName)

    cmdNewMember.Parameters.AddWithValue("@FirstName", FirstName)

    cmdNewMember.Parameters.AddWithValue("@MI", MI)

    cmdNewMember.Parameters.AddWithValue("@Telephone", Telephone)

    cmdNewMember.Parameters.AddWithValue("@SpecialCondition", SpecialCondition)

    cmdNewMember.Parameters.AddWithValue("@DateLastAttended", DLA)

    cmdNewMember.Parameters.AddWithValue("@Active", 1)cmdNewMember.Parameters.AddWithValue("@FamilyID", CurrentFamilyID)

    NewMbrID = cmdNewMember.ExecuteScalar()

    cmdNewMember.Parameters.Clear()

    Catch ex As Exception

    MsgBox("The following error occurred adding the new family member: " & vbCrLf + ex.Message)

    End Try

    Try

    If Not IsDBNull(DLA) Then

    Dim ServiceDate As String = DLA.Year.ToString + "-" + DLA.Month.ToString + "-" + DLA.Day.ToString

    Dim InsertNewAttendanceRecord As String = "INSERT INTO Attendance (Year,DateOfService,Present,MbrID) VALUES (@Year,@DateOfService,@Present,@MemberID)"

    Dim cmdNewAttendanceRecord As SQLiteCommand = New SQLiteCommand(InsertNewAttendanceRecord, cnMember)

    With cmdNewAttendanceRecord

    .CommandType = CommandType.Text

    .Parameters.Add("@Year", DLA.Year)

    .Parameters.Add("@DateOfService", ServiceDate)

    .Parameters.Add("@Present", 1)

    .Parameters.Add("@MbrID", NewMbrID)

    End With

    cmdNewAttendanceRecord.ExecuteNonQuery()

    cmdNewAttendanceRecord.Parameters.Clear()

    End If

    Catch ex As Exception

    MsgBox("The following error occurred adding the attendance record: " + vbCrLf + ex.Message)

    Finally

    frmMain.AttendanceTableAdapter.FillByMbrID(frmMain.CATDataSet.Attendance, New System.Nullable(Of Integer)(NewMbrID))

    frmMain.MbrDataTableAdapter.FillByFamilyID(frmMain.CATDataSet.MbrData, New System.Nullable(Of Long)(CType(CurrentFamilyID, Long)))

    frmMain.FamilyDataTableAdapter.FillByFamilyID(frmMain.CATDataSet.FamilyData, New System.Nullable(Of Integer)(CType(CurrentFamilyID, Integer)))

    End Try

    End Sub

    Filed under: ,
  • 06-16-2010 7:31 AM In reply to

    • rkulp
    • Top 10 Contributor
    • Joined on 06-28-2008
    • Rural Coffee County, Tennessee
    • Posts 73

    Re: Two Date Inserts -- One works and one fails -- Why? (SOLVED)

    The problem lay in the parameters for the second query. When I changed them from .Add to .AddWithValue all was well. Definitely not a game for a guy who cannot see.

Page 1 of 1 (2 items)
Powered by Community Server (Commercial Edition), by Telligent Systems