首页 新闻 会员 周边 捐助

SqlParameter数据类型为SqlDbType.NChar时无法模糊查询字母或数字

0
悬赏园豆:20 [已关闭问题]

下面代码,使用sql参数SqlParameter para,查询值为“9898989”的记录,将para.value设置为"%8%",但查询不到。

将para.value设置为 “%89%”或“%898%也查询不到,设置为至少4位,如"%8989%”时才能够查到。数据库中字段的数据类型是NChar。

使用不带参数的sql语句 select * from T_tt where xx like “%8%”是可以查到。

又试了一下,将new SqlParameter("@para", SqlDbType.NChar, 10)中的数据类型修改为SqlDbType.NVarChar后,还将参数值设置为"%8%"就可以查到了。sql参数的这两种数据类型在内部处理时有什么区别吗?不修改参数的数据类型有没有其它方法可以解决呢?

谢谢!

 SqlConnection cn = new SqlConnection("server=.;database=x;uid=sa;pwd=;");
            SqlCommand cmd = cn.CreateCommand();
            cmd.CommandText = "select * from T_tt where xx like @para";

            SqlParameter para = new SqlParameter("@para", SqlDbType.NChar, 10);
            para.Value = "%8%";//想查询到记录“9898989”
            cmd.Parameters.Add(para);

wangd的主页 wangd | 初学一级 | 园豆:75
提问于:2010-06-24 13:14
< >
分享
其他回答(1)
0

数据库的默认字体是什么呢?

蔡春升 | 园豆:3 (初学一级) | 2010-06-24 13:33
0

关注一下。

Astar | 园豆:40805 (高人七级) | 2010-06-24 14:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册