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();
}