VB sql搜索错误“将数据类型varchar转换为bigint时出错。”

时间:2015-04-20 02:24:57

标签: sql sql-server vb.net

我正在尝试进行搜索,您可以输入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)

中有错误

1 个答案:

答案 0 :(得分:3)

您应该使用查询参数。而且,我可能会质疑为什么您希望用户输入可以是名称或数字。但是,鉴于您正在做的事情,您可以通过在比较之前转换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 & "'"

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