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);
}
}
}
{//在哪
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);
}
}
}
解决方案 »
- 531KF在线客服系统,欢迎拍砖,免费下载!!!【原创】
- 谷歌浏览器检测网站有危险! 进来看一下!
- easyui datagrid显示19位数字的问题
- C#编写的应用程序里既要用到C#编写的类。。又要使用vB编写的类怎么办。。在应用程序中应如何设置
- GRIDVIEW 配置数据源的问题
- asp.net 使用Excel权限问题,需要自动(脚本)配置
- 在ASP.NET下调用Tuxedo
- 页面中DataGrid 的Header 显示不正确问题
- 怎样验证DataGrid单元格文本?(在线急等!!!)
- WAP程序中拆分一段POST过来的XML数据报错,以及为何请求页面自动会加上一段奇怪的数字
- 请问 UploadInfo 是什么东东??
- 如何像美丽说那样,用多张图片生成一张图片。
MySqlParameter[] parameters = {
new MySqlParameter("@strWhere", MySqlDbType.VarChar, 255),
http://bbs.csdn.net/topics/300025212