我正在使用 vs 2012 Professional 和 SQL-Server 2012 Express。
我试图运行 Admin.aspx,它有一个文本框来搜索数据库中的用户。
但是,每次我尝试搜索用户名时都会收到此错误
Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'users' because it is not full-text indexed.
从我搜索的内容来看,需要启用全文索引,在我的情况下,它在 SQL Server Management Studio 中显示为灰色,在 Express 版中不可用 (???)。
我怎样才能克服这个问题?
管理员.aspx
Imports System.Data.SqlClient
Partial Class Admin
Inherits System.Web.UI.Page
Protected Sub btnSearchUser_Click(sender As Object, e As EventArgs) Handles btnSearchUser.Click
Dim conn As New SqlConnection("Data Source=BRIAN-PC\SQLEXPRESS;Initial Catalog=master_db;Integrated Security=True")
Dim searchComm As String = "SELECT username FROM users WHERE CONTAINS (username, @username)"
Dim searchSQL As New SqlCommand
conn.Open()
searchSQL = New SqlCommand(searchComm, conn)
searchSQL.Parameters.AddWithValue("@username", txtUserSearch.Text)
Dim datareader As SqlDataReader = searchSQL.ExecuteReader()
While datareader.Read
lstUsers.Items.Add(datareader.Item("username"))
End While
datareader.Close()
conn.Close()
End Sub
End Class
如您所见,用户在搜索框中输入用户名,并且对于包含来自文本框输入的单词的每条记录,都将作为项目添加到列表框中。