coudy_
coudy_
2016-03-02 09:38
采纳率: 100%
浏览 2.5k

MySql参数化查询结果为空

背景是要做一个查询用户和用户权限的用户中心,使用Mysql数据库。
查询其他表都OK,唯独权限表通过代码查询后结果为空。

先上表结构和代码:

表结构
CREATE TABLE Permission (
PermissionID varchar(3) ,
PermissionName varchar(100) ,
CreateDate datetime ,
CreateUserID char(6) ,
UpdateDate datetime ,
UpdateUserID char(6) ,
ValidFlag int(1)
)

代码

 private const string SQL_GetPermissionInfo = @"
                  SELECT 
                        PermissionID 
                       ,PermissionName 
                       ,CreateDate 
                       ,CreateUserID 
                       ,UpdateDate 
                       ,UpdateUserID 
                       ,ValidFlag 
                   FROM
                        Permission
                   WHERE
                        1=1 ";
    public static DBResponse GetPermissionInfo(DBRequest dbRequest, string PermissionID)
        {
            StringBuilder sqlStr = new StringBuilder();
            sqlStr.Append(SQL_GetPermissionInfo);
            MySqlParameter[] paras = null;
            if (!string.IsNullOrEmpty(PermissionID))
            {
                paras = new MySqlParameter[]{
                    new MySqlParameter("@PermissionID ",PermissionID )
                };
                sqlStr.Append(" and PermissionID  = @PermissionID ");
            }
            return ExecuteDataset(dbRequest, sqlStr.ToString(), paras);
        }

1、跟@ 和 ? 没有关系,这个已经实际测试过
2、连接串上有加Allow User Variables=True,不加会报错(Fatal error encountered during command execution.)

有人怀疑是表的问题,可实在不知道问题出在什么地方
希望有高手帮忙解决
感谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • coudy_
    coudy_ 2016-03-10 01:42
    已采纳

    问题已经解决,参数化的过程中,担当作业的人多写了一个空格
    new MySqlParameter(**"@PermissionID "**,PermissionID )

    点赞 评论
  • devmiao
    devmiao 2016-03-02 11:31
    点赞 评论

相关推荐