a.搜索的存储过程
CREATE Procedure SearchData
@Search varchar(255)
AS
SELECT
ID,
a,
b,
c
FROM
Table
WHERE
a LIKE '%' + @Search + '%'
OR
b LIKE '%' + @Search + '%'
OR
c LIKE '%' + @Search + '%'
GO
private void SearchButton_Click(object sender, System.EventArgs e)--搜索事件
{
SearchPanel.Visible = false;
MyList.Visible = true;
A.a class= new A.a();
DataGrid.DataSource = A.SearchwareDescriptions(Search.Text);
DataGrid.DataBind();
if (DataGrid.Items.Count == 0)
{
Response.Write("<script>alert('没有任何商品匹配你的查询串');window.location.href='Search.aspx';</script>");
}
}
下面是实现SearchwareDescriptions的方法,由于该方法是单独拉出来的,SqlConnection ,SqlCommand,SqlDataReader都是在里面写的,在常规编程中是不提倡写在里面的,首先先申明变量connstr,用于数据库的连接
public static readonly string connstr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString();
public SqlDataReader SearchwareDescriptions(string searchString)
{
//创建数据库连接和命令的对象
SqlConnection myConnection = new SqlConnection(connstr);
SqlCommand myCommand = new SqlCommand("Searchware", myConnection);--存储过程名称
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterSearch = new SqlParameter("@Search", SqlDbType.NVarChar, 255);
parameterSearch.Value = searchString;
myCommand.Parameters.Add(parameterSearch);
//执行数据操作命令并返回结果的记录集
myConnection.Open();
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
//返回DataReader的结果
return result;
}