VB sql 搜索错误"Error converting data type varchar to bigint."



我试图进行搜索,您可以在其中输入IDName但是当我尝试输入名称时,它会显示错误

"将数据类型 varchar 转换为 bigint 时出错。"

这是我的代码:

 If button1 = 2 Then
        Dim SA As New SqlDataAdapter("Select [Dept_Id],[Dept_Name],[Active] From [it].[dbo].[Department] WHERE Dept_Id = '" & frmMain.txtSearch.Text & "' OR Dept_Name='" & frmMain.txtSearch.Text & "'", Connection1)
        Dim DT As New DataTable
        SA.Fill(DT)
        With D
            .DataSource = DT
            .Columns(0).HeaderText = "Department ID"
            .Columns(1).HeaderText = "Department Name"
            .Columns(2).HeaderText = "Active"
        End With

SA.Fill(DT) 行有错误

应为查询使用参数。 而且,我可能会质疑为什么您希望用户输入是名称或数字。 但是,鉴于您正在做的事情,您可以通过在比较之前转换Dept_Id来解决您的问题:

Select [Dept_Id], [Dept_Name], [Active]
From [it].[dbo].[Department]
WHERE CAST(Dept_Id as VARCHAR(255)) = '" & frmMain.txtSearch.Text & "' OR 
      Dept_Name='" & frmMain.txtSearch.Text & "'"

这也是使用参数化查询也能解决解决方案的一种方法。

相关内容

最新更新