none
cmd.Parameters.AddWithValue()好像有时候不好使? RRS feed

  • 问题

  •  

    如下代码:我把 PageItem当做id值传入时就好使,而传入strWhere时就不能传入参数呢?

     

     

    public partial class testPage1 : System.Web.UI.Page
    {
        private int PageItem = 10;
        private OleDbConnection con = null;
        protected OleDbCommand cmd = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            bindData();
        }
        private void bindData()
        {
            string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\City.mdb;";
            con = new OleDbConnection(connectionString);
            con.Open();
            cmd = new OleDbCommand();
            cmd.Connection = con;
            string strSql = string.Empty;

     

            //strSql = "SELECT TOP "+PageItem.ToString()+" name FROM area WHERE id=@id";
            //cmd.Parameters.AddWithValue("@id", PageItem); 这个就好使

     

            string strWhere = "'%美%'";
            strSql = "SELECT  * FROM area Where [name] like @strWhere";//这个就不好使

            cmd.Parameters.AddWithValue("@strWhere", strWhere);


            cmd.CommandText = strSql;
            OleDbDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                Response.Write(dr[0] + "<br>");
            }
        }
    }

    2009年1月21日 11:56

答案

  •  

    正确方法

     

    string strWhere = "%美%";
    strSql = "SELECT  * FROM area Where [name] like @strWhere";

    注意:无单引号
    2009年1月21日 12:34
    版主

全部回复