关于C#SqlParameter传参进行模糊查询遇到的问题!
来源:互联网 发布:单片机反编译 编辑:程序博客网 时间:2024/06/04 00:26
今天写作业碰到的问题,自己纠结,检查折腾了半小时,觉得实在不行了,开始百度,百度上也没有太确切的答案
,也不是没有答案,就是太难找到了,并且大神讲的太深奥,原理是没看懂,但是解决办法学会了,下面贴代码
StringBuilder strSql = new StringBuilder();
strSql.AppendLine("select stu.studentno,sub.subjectid,r.StudentResult,r.examdate,r.id");
strSql.AppendLine("from student as stu inner join result as r on (stu.studentNo=r.studentNo)");
strSql.AppendLine("inner join subject as sub on(r.subjectid=sub.subjectid) where 1=1");
if (subjectId != 0)
{
strSql.AppendLine("and r.subjectid=@subjectid");
}
if (name != "")
{
strSql.AppendLine("and stu.studentname like @name ");
}
using( SqlCommand cmd=new SqlCommand(strSql.ToString(),dbHelper.Connection))
{
try
{
SqlParameter[] parameters = {
new SqlParameter("@subjectid",subjectId),
new SqlParameter("@name","%"+name+"%")
};
strSql.AppendLine("select stu.studentno,sub.subjectid,r.StudentResult,r.examdate,r.id");
strSql.AppendLine("from student as stu inner join result as r on (stu.studentNo=r.studentNo)");
strSql.AppendLine("inner join subject as sub on(r.subjectid=sub.subjectid) where 1=1");
if (subjectId != 0)
{
strSql.AppendLine("and r.subjectid=@subjectid");
}
if (name != "")
{
strSql.AppendLine("and stu.studentname like @name ");
}
using( SqlCommand cmd=new SqlCommand(strSql.ToString(),dbHelper.Connection))
{
try
{
SqlParameter[] parameters = {
new SqlParameter("@subjectid",subjectId),
new SqlParameter("@name","%"+name+"%")
};
问题在红色代码部分,解决办法在绿色代码部分,
先说红色代码的问题把and stu.studentname like ‘%@name%’ 如果这里这样写,SqlCommand执行的时候会无法识别参数,
会直接把sql语句也构建成like ‘%@name%’ 等于就是在根据字符串@name在数据库模糊查找,而不是@name真实的值
解决办法就是直接在@name的值内进行拼接,也就是绿色代码的部分new SqlParameter("@name","%"+name+"%")直接在
这里进行拼接,然后构建Sql语句的时候like后不要带单引号就OK了。
阅读全文
1 0
- 关于C#SqlParameter传参进行模糊查询遇到的问题!
- 关于SqlParameter的问题.
- asp.net sqlparameter 传参数模糊查询
- C#——关于SqlParameter直接赋值的问题
- 使用PreparedStatement进行模糊查询的%问题
- SqlParameter 使用 like模糊 查询不到结果的解决方法
- 关于sql的模糊查询的问题
- 关于对日期类型的数据进行模糊查询的问题
- asp.net SqlParameter关于Like的传参数无效问题
- asp.net SqlParameter关于Like的传参数无效问题
- 关于xml的模糊查询问题
- oracle关于模糊查询的问题
- oracle关于模糊查询的问题
- 关于Access模糊查询的问题
- 关于sql模糊查询的下划线问题
- sql模糊查询时遇到下划线的关键字问题
- 关于面试问题---模糊查询
- 模糊查询的问题
- cobertura的使用
- Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(五)-实体类集合数据源
- Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(六)-模板元素详解
- Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(七)-PDF中文显示
- Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(八)-Mysql数据源
- 关于C#SqlParameter传参进行模糊查询遇到的问题!
- 还有太多需要学习
- 估计
- # Python3 shutil(高级文件操作 模块)
- Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test)
- Python3 压缩与解压缩(zlib / gzip / bz2 / lzma / zipfile / tarfile)
- 整合ssh
- 第十六天:读写文件!
- 关于SEO与搜索引擎排名现状分析与SEO去向