Getting Syntax Error Converting from Character String

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dougancil
    Contributor
    • Apr 2010
    • 347

    Getting Syntax Error Converting from Character String

    I have the following code:

    Code:
    Imports System.Data.SqlClient
    Public Class Main
        Protected WithEvents DataGridView1 As DataGridView
        Dim instForm2 As New Exceptions
        Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles startpayrollButton.Click
            Dim ssql As String = "select MAX(payrolldate) AS [payrolldate], " & _
                     "dateadd(s,  518399, max(payrolldate)) AS [Sunday]" & _
                      "from dbo.payroll" & _
                      " where payrollran = 'no'"
            Dim oCmd As System.Data.SqlClient.SqlCommand
            Dim oDr As System.Data.SqlClient.SqlDataReader
            oCmd = New System.Data.SqlClient.SqlCommand
    
            Try
                With oCmd
                    .Connection = New System.Data.SqlClient.SqlConnection("Initial Catalog=mdr;Data Source=xxxxx;uid=xxxxx;password=xxxxx")
                    .Connection.Open()
                    .CommandType = CommandType.Text
                    .CommandText = ssql
                    oDr = .ExecuteReader()
                End With
                If oDr.Read Then
                    payperiodstartdate = oDr.GetDateTime(1)
                    payperiodenddate = payperiodstartdate.AddDays(7)
                    Dim ButtonDialogResult As DialogResult
                    ButtonDialogResult = MessageBox.Show("      The Next Payroll Start Date is: " & payperiodstartdate.ToString() & System.Environment.NewLine & "            Through End Date: " & payperiodenddate.ToString())
                    If ButtonDialogResult = Windows.Forms.DialogResult.OK Then
                        exceptionsButton.Enabled = True
                        startpayrollButton.Enabled = False
                    End If
                End If
                oDr.Close()
                oCmd.Connection.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                oCmd.Connection.Close()
            End Try
    
        End Sub
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles exceptionsButton.Click
            Dim connection As System.Data.SqlClient.SqlConnection
            Dim adapter As System.Data.SqlClient.SqlDataAdapter = New System.Data.SqlClient.SqlDataAdapter
            Dim connectionString As String = "Initial Catalog=mdr;Data Source=xxxxx;uid=xxxxx;password=xxxxx"
            Dim ds As New DataSet
            Dim _sql As String = "SELECT [Exceptions].Employeenumber,[Exceptions].exceptiondate, [Exceptions].starttime, [exceptions].endtime, [Exceptions].code, datediff(minute, starttime, endtime)  as duration into Scratchpad3" & _
            " FROM Employees INNER JOIN Exceptions ON [Exceptions].EmployeeNumber = [Exceptions].Employeenumber" & _
             " where [Exceptions].exceptiondate between @payperiodstartdate and @payperiodenddate" & _
             " GROUP BY [Exceptions].Employeenumber, [Exceptions].Exceptiondate, [Exceptions].starttime, [exceptions].endtime," & _
             " [Exceptions].code, [Exceptions].exceptiondate"
            connection = New SqlConnection(connectionString)
            connection.Open()
            Dim _CMD As SqlCommand = New SqlCommand(_sql, connection)
            _CMD.Parameters.AddWithValue("@payperiodstartdate", payperiodstartdate)
            _CMD.Parameters.AddWithValue("@payperiodenddate", payperiodenddate)
            adapter.SelectCommand = _CMD
            Try
                adapter.Fill(ds)
                If ds Is Nothing OrElse ds.Tables.Count = 0 OrElse ds.Tables(0).Rows.Count = 0 Then
                    'it's empty
                    MessageBox.Show("There was no data for this time period. Press Ok to continue", "No Data")
                    connection.Close()
                    Exceptions.saveButton.Enabled = False
                    Exceptions.Hide()
                Else
                    connection.Close()
                End If
    
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
                connection.Close()
            End Try
            Exceptions.Show()
        End Sub
    
        Private Sub payrollButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles payrollButton.Click
            Payrollfinal.Show()
        End Sub
    End Class
    and when I run this code, I get the following error
    System.Data.SQL Client.SQLExcep tion: Syntax error converting from character string, line 57. Which is this line:

    adapter.Fill(ds )

    When I debug this, I put the line break on that line and look at the Table Value, which shows 0, but I know that there is data for that time frame. Can anyone please assist?
Working...