下面代码,使用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);
数据库的默认字体是什么呢?
关注一下。