string str1 = DropDownList1.SelectedItem.Value;
        string str2 = DropDownList2.SelectedItem.Value;
        if ( str1.CompareTo(str2) <=0 )
        {
            SqlConnection cn = new SqlConnection("data source = .; initial catalog = task; integrated security = sspi");
            //注意此处的initial catalog = mywork;是数据库的名字,而不是创建的表的名字!一定要注意区分!
            SqlDataAdapter da = new SqlDataAdapter("select * from lottery where( 期号.CompareTo('2012W170')>=0 and 期号.CompareTo('2012W175')<=0 )", cn); //
            DataSet ds = new DataSet();
            da.Fill(ds);
            GridView1.DataSource = ds.Tables[0];
            GridView1.DataBind();
        }    
下划线部分,本意是像找task数据库中的lottery表中,列名为'期号'对应的值在2012W170到2012W175之间的所有元组!但这样会提示错误!应该怎么写啊!请教高手!急急急!

解决方案 »

  1.   

    "select * from lottery where( 期号.CompareTo('2012W170')>=0 and 期号.CompareTo('2012W175')<=0 )"有这样写sql语句的吗???
      

  2.   

    2012W170 不是数值类型 不能用"区间"来查找,因为计算机不可能知道 "2012W170" 和 "2012W171" 的关系到底是谁大谁小 
      

  3.   


    找不到列 "期号" 或用户定义的函数或聚合 "期号.CompareTo",或者名称不明确。
      

  4.   


    谢谢您!我给搞混了,虽然是在C#语言中加入了SQL语句,但下划线部分毕竟是SQL语句!谢谢谢谢!
      

  5.   


    请教您一下,这儿应该怎么写呢?怎么才能在SQL中使用str1和str2啊?怎么进行比较啊?
      

  6.   

    Where 部分改成SUBSTRING(期号,0,6) = '2012W' AND CONVERT(int, SUBSTRING(期号,6,3) BETWEEN 170 and 175
      

  7.   


    您好,有提示错误:关键字 'BETWEEN' 附近有语法错误。 
      

  8.   

    select * from lottery where 期号 between '2012W170' and '2012W175'
      

  9.   


    谢谢您,谢谢您,成功了!但如果我想让期号的上下界是str1和str2的值,应该怎么实现啊?
      

  10.   

    SqlDataAdapter da = new SqlDataAdapter(string.Format("select * from lottery where 期号 between '{0}' and '{1}'", str1, str2), cn);