首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

MySqlParameter 传参有关问题

2012-12-15 
MySqlParameter传参问题GetList 方法一直获取不到数据,假如直接写sql可以查询到数据,个人怀疑是PrepareCom

MySqlParameter 传参问题
GetList 方法一直获取不到数据,假如直接写sql可以查询到数据,个人怀疑是PrepareCommand 传参的时候没有跟sql字段关联起来,但是从网上找的demo都是这样传参的,求解决,急!!!

 public DataSet GetList(string strWhere, string orderby, int page, int pageSize)
        {//在哪
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select MenuID,MenuName,MenuUrl,MenuIco,MenuFatherID,IsSubset,OrderbyCode,IsDisplay from menuinfo");
            strSql.AppendFormat(" where ?strWhere");
            strSql.Append(" order by ?orderby limit ?pagecount,?pagesize;");
            strSql.AppendFormat("select count(*) from menuinfo where ?strWhere");
            MySqlParameter[] parameters = {
                    new MySqlParameter("?strWhere", MySqlDbType.VarChar, 255),
                    new MySqlParameter("?orderby",MySqlDbType.VarChar,255), 
                    new MySqlParameter("?pagecount",MySqlDbType.Int32,4), 
                    new MySqlParameter("?pagesize",MySqlDbType.Int32,4)
                    };
            parameters[0].Value = strWhere;
            parameters[1].Value = orderby;
            parameters[2].Value = (page - 1) * pageSize;
            parameters[3].Value = pageSize;
            DataSet ds = new DataSet();
            ds = DbHelperMySQL.Query(strSql.ToString(), parameters);
            return ds;
        }


 public static DataSet Query(string sql, MySqlParameter[] param)
        {
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                using (MySqlCommand cmd = new MySqlCommand())
                {
                    PrepareCommand(cmd, connection, null, sql, param);
                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))


                    {
                        DataSet ds = new DataSet();
                        try
                        {
                            da.Fill(ds, "ds");
                            cmd.Parameters.Clear();
                        }
                        catch (MySqlException ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        finally
                        {
                            cmd.Parameters.Clear();
                            cmd.Dispose();
                            connection.Close();

                        }
                        return ds;
                    }
                }
            }
        }


 private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, string cmdText, MySqlParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;


            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = CommandType.Text;//cmdType;
            if (cmdParms != null)
            {
                foreach (MySqlParameter parameter in cmdParms)
                {
                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                        (parameter.Value == null))
                    {
                        parameter.Value = DBNull.Value;
                    }
                    cmd.Parameters.Add(parameter.Value);
                }
            }
        }


[最优解释]
?strWhere之类。。,参数可以写表达式吗(我好像没这么用过)?改成单个的值呢
[其他解释]
你的参数怎么都是 ?,应该是 @

         strSql.AppendFormat(" where @strWhere");
            MySqlParameter[] parameters = {
                    new MySqlParameter("@strWhere", MySqlDbType.VarChar, 255),

[其他解释]
大侠么   帮忙瞅瞅啊
[其他解释]

引用:
你的参数怎么都是 ?,应该是 @

         strSql.AppendFormat(" where @strWhere");
            MySqlParameter[] parameters = {
                    new MySqlParameter("@strWhere", MySqlDbType.VarChar……


mysql 是? 
[其他解释]
那就参考这个帖子吧,说了一大堆,你看看哪个对你有用
http://bbs.csdn.net/topics/300025212
------其他解决方案--------------------


引用:
?strWhere之类。。,参数可以写表达式吗(我好像没这么用过)?改成单个的值呢


单个的值是什么意思
[其他解释]
引用:
?strWhere之类。。,参数可以写表达式吗(我好像没这么用过)?改成单个的值呢


我不清楚有几个查询条件,不整体的话那怎么写啊

热点排行