using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
namespace Bookstore
{
public partial class search : System.Web.UI.Page
{
//Get the connection string from web.config
string connectionString = ConfigurationManager.ConnectionStrings["BookstoreConnectionString"].ToString();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FillPage();
}
}
public void FillPage()
{
//Check if the url contains searchString parameter
if (!String.IsNullOrWhiteSpace(Request.QueryString["searchString"]))
{
string searchString = Request.QueryString["searchString"];
}
lblResult.Text = "";
SqlConnection conn = new SqlConnection(connectionString);
// query string with @search variable
var query = "SELECT * FROM Products WHERE Name LIKE '%' + @search + '%' OR ItemNumber LIKE '%' + @search + '%' OR Price LIKE '%' + @search + '%' OR Description LIKE '%' + @search + '%' ORDER BY Name";
try
{
SqlCommand search = new SqlCommand(query, conn);
//placed the search string in the @search variable
query.Parameters.Add("@search", SqlDbType.VarChar).Value = searchString;
conn.Open();
query.ExecuteNonQuery();
}
finally
{
conn.Close();
}
}
我是一名新的程序员,正在努力学习基础知识,我们非常感谢耐心。
我正在尝试将URL中的参数传递给查询字符串。
在上面的代码中我试图使用:
query.Parameters.Add("@search", SqlDbType.VarChar).Value = searchString;
实现这一目标。
我的问题是。参数未被识别。它下面有一条红色的波浪线。我有:在顶部使用System.Data.SqlClient所以我很难过。我已经在网上搜索了两天的解决方案,但一无所获。可能是因为我不知道这个问题的正确搜索术语。
感谢任何帮助。 谢谢, 黛安娜
答案 0 :(得分:1)
query
是一个字符串。您无法向字符串添加参数。您必须向SqlCommand
实例search
添加参数:
search.Parameters.Add("@search", SqlDbType.VarChar).Value = searchString;
或简单地说:
search.Parameters.Add("@search", searchString);
答案 1 :(得分:1)
SqlCommand
对象的参数不适用于string
。所以
而不是query
只使用您的SqlCommand
对象,即search
search.Parameters.Add("@search", SqlDbType.VarChar).Value = searchString;