小弟最近遇到这样一个问题:
如,在图书管理信息系统中,想利用多种参数查询图书信息,例如我想利用图书编号(Book_No)查询,利用图书类型(Book_Type)查询,利用图书入库时间(Book_InDate)查询,图书关键字(Book_KeyWord)查询.
现在想利用一个函数实现单参数查询,多参数组合查询怎么做?
Public DataSet QueryBook(string Book_No,string Book_Type,string Book_InDate,string Book_KeyWord)
{
 //通用的SQL语句
}

解决方案 »

  1.   

    Public DataSet QueryBook(string Book_No,string Book_Type,string Book_InDate,string Book_KeyWord)
    {
     //通用的SQL语句
      string sql = "";
      sql = "select * from table where 1=1";
      sql += " and Book_No = '" + Book_No + "' ";
      sql += " and Book_Type = '" + Book_Type + "' ";
      sql += " and Book_InDate = '" + Book_InDate + "' ";
      sql += " and Book_KeyWord = '" + Book_KeyWord + "' ";
    ......
    }
    类似于这样吧,以上仅按"与"条件进行,你如果有"或"条件的话,可将部分and改为or
      

  2.   

    select * from [Book]
    where Book_No='xxx' and Book_Type='xxx' and Book_InDate='xxx' and Book_KeyWord='xxx'
      

  3.   

    public DataSet QueryBook(string query_text,string query_field)
    {
    }
    里面的 sql 语句就是 "select * from book where " & query_field & "='" & query_text &"'"
      

  4.   

    需求不明确,是不是说只有一个,或者也可以多个,那么重载这个QueryBook方法了
    Public DataSet QueryBook(string Book_No,string Book_Type,string Book_InDate,string Book_KeyWord)
    {}
    public Dataset QueryBook(string Book_No,string Book_Type,string Book_InDate)
    {
         QueryBook(string Book_No,string Book_Type,string Book_InDate,null)}
    做类似处理了。
      

  5.   

    就如: hchxxzx(NET?摸到一点门槛) 
    说的吧,
    如果是or 的话改一下就行了
      

  6.   

    Public DataSet QueryBook(params string[] list)
    {
        for(i=0;i<=list.Length;i++) 
        {
            string sql_ = "";        
            sql_ += "select * from table where 1=1 ";
            sql_ += "and" + list[i] + "=" + list[i] ;
            
        } 
        string sql = "";
        sql = _sql.ToString();
        //再执行sql}
      

  7.   

    不好意思,
    _sql 和 sql_搞错了