tbSearch.Text
是页面上的文本框值,searchText
是在下拉列表框选择索引更改事件时收到的字符串数据类型值。
我从文本框和下拉列表框中完美地接收到这两个值,但我无法从表中搜索数据。
存储过程:
ALTER PROCEDURE showData
@search varchar(MAX)=NULL,
@status varchar(50)=NULL
AS
BEGIN
if @status = 'LANDLINE' and @search != ''
BEGIN
SELECT c.contid AS ID,
c.contname AS Person,
b.bustype AS Business,
c.comp AS Company,
c.email1 AS Email,
c.email2 AS Email,
c.website AS Website,
c.landline1 AS Landline,
c.landline2 AS Landline,
c.mobile1 AS Mobile,
c.mobile2 AS Mobile,
c.street AS Street,
c.city AS City,
c.zip AS ZipCode,
c.state AS State,
c.country AS Country
FROM contactinfo c
LEFT OUTER JOIN businessinfo b
ON c.bustype = b.bustype
WHERE c.landline1 LIKE '%' + @search + '%'
OR c.landline2 LIKE '%' + @search + '%'
END
END
RETURN
调用 C# 代码:
protected void btSearch_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
cmd = new SqlCommand("showData", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@search", tbSearch.Text);
cmd.Parameters.AddWithValue("@status", searchText);
da = new SqlDataAdapter(cmd);
ds.Clear();
da.Fill(ds);
GridViewSearch.Visible = true;
GridViewSearch.DataSource = ds.Tables[0];
GridViewSearch.DataBind();
}