0

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

1 に答える 1

0

NULL を ' ' に置き換えます

@Search varchar(MAX)=''
@status varchar(50)=''
于 2012-06-13T06:52:22.177 に答える