我现在想做一个这个的查询:
   用一个DropDownList1,与一个textbox,来控制查询方式,DropDownList1中可以几个选项,
我的方法是用一个存储过程,语句如下:@type 由DropDownList1.SelectedValue来值create   Procedure Search
(
    @Search nvarchar(255),
    @type  nvarchar(16)
)
ASSELECT 
    BookID,
    BookName,
    ISBN,
    SalePrice, 
    BookImageFROM 
    BookWHERE 
   
   
    @type   LIKE '%' + @Search + '%'GOCopyBookstore.BookStore search =new BookStore();  //做一个专门的函数 this.DataGrid1.DataSource=search.SearchBook(this.DropDownList1.SelectedValue,this.TextBox1.Text);
this.DataGrid1.DataBind();各位牛哥帮我看看吧!

解决方案 »

  1.   

    参考如下,在where条件中再多一个and条件即可
    http://singlepine.cnblogs.com/articles/391292.html
      

  2.   

    不明白,,不知道大家看懂我的意思没有?我的意思就是:如果在DropDownList1选择用标题来查询,或以内容。。来控制
    现在我这样做不能成功,请大家提几个方法。
      

  3.   

    @type   LIKE '%' + @Search + '%'don't need "'"?
      

  4.   

    我把那个函数粘出来:
        public SqlDataReader SearchBook(string ctype, string searchtext)
    {
    SqlConnection cn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionStr"]);
    SqlCommand com=new SqlCommand("search",cn);
    com.CommandType=CommandType.StoredProcedure;
    SqlParameter parameteSearch=new SqlParameter("@search",SqlDbType.NVarChar,255);
    parameteSearch.Value=searchtext;
    com.Parameters.Add(parameteSearch);
    SqlParameter parametectype =new SqlParameter("@type",SqlDbType.NVarChar,50);
    parametectype.Value=ctype;
    com.Parameters.Add(parametectype);
    cn.Open();
    SqlDataReader result=com.ExecuteReader(CommandBehavior.CloseConnection);
    return result; }
      

  5.   

    这个和.net没有关系,关键是你使用的数据库是否支持,数据字段变量。现在除了sqlServer2005以外,都不可以,你可以通过@type变量在存储过程中组成多个SQL来实现,想用一个sql中通过变量来表示字段名是不可以的。