2 coudy coudy_ 于 2016.03.02 17:38 提问

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 09:42
已采纳

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

devmiao
devmiao   Ds   Rxr 2016.03.02 19:31
coudy_
coudy_ 是指参数带有敏感字符所以被拦截或是转译了么? 这个程序有多个查表的类 都是通过参数化实现的查询 唯独这张表不行
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!