0

検索ボタンがあり、クリックすると結果が表示されますが、「文字列から整数型への変換は有効ではありません」というメッセージ ボックスが表示されます。検索用の私のコードは次のとおりです。

Private Sub btnSearchExpenditure_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearchExpenditure.Click
  Try
    If txtSearchExpenditure.Text = "" Then
        MsgBox("Please fill up search field!", MsgBoxStyle.Exclamation)
        Exit Sub
        Else
        modGlobalFunctions.Connection.Close()
        modGlobalFunctions.connectDatabase()
        RecordCount = modGlobalFunctions.loadDataGrid("SELECT * " & _
                      "FROM bims_expenditure " & _
                      "WHERE type_id='" & TypeId & "' " & _
                      "AND (code LIKE '%" & txtSearchExpenditure.Text & "%' " & _
                      "OR object_name LIKE '%" & txtSearchExpenditure.Text & "%' ) " & _
                      "ORDER BY code ASC", dgvExpenditureItems)
                 If RecordCount = 0 Then
                    txtCodeExpenditure.Clear()
                    txtNameExpenditure.Clear()
                    MsgBox("No records found!", MsgBoxStyle.Exclamation)
                End If
                With dgvExpenditureItems
                    .Font = gridFont.Font
                    .Columns(1).Visible = False
                    .Columns(4).Visible = False
                    .Columns(5).Visible = False
                    .Columns(6).Visible = False
                    .Columns(7).Visible = False

                    .Columns(0).HeaderText = ""
                    .Columns(2).HeaderText = "Code"
                    .Columns(3).HeaderText = "Name"

                    .Columns(0).Width = 0
                    .Columns(2).Width = 150
                    .Columns(3).Width = 540
                End With
                frmMain.recordsLabel.Visible = True
                frmMain.tssRecords.Text = RecordCount
                modGlobalFunctions.Connection.Close()
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "BIMS", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

何が悪いのかわからない。助言がありますか?前もって感謝します。神のご加護を!

4

1 に答える 1

0

次のように変換RecordCountしてみてくださいString

frmMain.tssRecords.Text = Convert.ToString(RecordCount)

あなたが言ったように、テーブルのtype_id列は であるため、 の値から削除する必要があります (つまり、クエリはの代わりにある必要があります)。bims_expenditureINT''type_idWHERE type_id=" & TypeId & " "WHERE type_id='" & TypeId & "' "

次のコードを試してください。

Private Sub btnSearchExpenditure_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearchExpenditure.Click
  Try
    If txtSearchExpenditure.Text = "" Then
        MsgBox("Please fill up search field!", MsgBoxStyle.Exclamation)
        Exit Sub
        Else
        modGlobalFunctions.Connection.Close()
        modGlobalFunctions.connectDatabase()
        RecordCount = modGlobalFunctions.loadDataGrid("SELECT * " & _
                      "FROM bims_expenditure " & _
                      "WHERE type_id=" & TypeId & " " & _
                      "AND (code LIKE '%" & txtSearchExpenditure.Text & "%' " & _
                      "OR object_name LIKE '%" & txtSearchExpenditure.Text & "%' ) " & _
                      "ORDER BY code ASC", dgvExpenditureItems)
                 If RecordCount = 0 Then
                    txtCodeExpenditure.Clear()
                    txtNameExpenditure.Clear()
                    MsgBox("No records found!", MsgBoxStyle.Exclamation)
                End If
                With dgvExpenditureItems
                    .Font = gridFont.Font
                    .Columns(1).Visible = False
                    .Columns(4).Visible = False
                    .Columns(5).Visible = False
                    .Columns(6).Visible = False
                    .Columns(7).Visible = False

                    .Columns(0).HeaderText = ""
                    .Columns(2).HeaderText = "Code"
                    .Columns(3).HeaderText = "Name"

                    .Columns(0).Width = 0
                    .Columns(2).Width = 150
                    .Columns(3).Width = 540
                End With
                frmMain.recordsLabel.Visible = True
                frmMain.tssRecords.Text = Convert.ToString(RecordCount)
                modGlobalFunctions.Connection.Close()
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "BIMS", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub
于 2012-08-07T04:31:14.643 に答える