Datagridview和搜索按钮从字符串“”转换为类型整数无效
问题描述:
我有一个搜索按钮,当我点击它,结果显示,但它有这个消息框,说“从字符串转换”“类型整数无效“。这里是我的搜索代码:Datagridview和搜索按钮从字符串“”转换为类型整数无效
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
我不知道什么是错的。有什么建议么?提前致谢。上帝保佑!
答
尝试RecordCount
转化为String
这样的:
frmMain.tssRecords.Text = Convert.ToString(RecordCount)
正如你在bims_expenditure
表type_id
列说是INT
,所以你需要从type_id
值删除''
(IG您的查询应该是WHERE 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
什么是'bims_expenditure' SQL表'type_id'和 '代码' 列的数据类型? – hims056 2012-08-07 04:06:09
type_id是int,而代码是varchar ... – bayan0926 2012-08-08 00:21:38