微软EnterpriseLibrary中使用SQL LIKE语句遇到的问题
2008-06-03 18:15
183 查看
下面是使用微软EnterpriseLibrary时的一段代码:
public DataTable GetContractReportData(string userName)
{
Database db = DatabaseFactory.CreateDatabase("SQLDBConnection");
string sql = @"SELECT
[UserName]
,[Birthday]
FROM [UserInfo]
WHERE 1 = 1 AND [UserName] LIKE '%@userName%' ";
DataTable dt = new DataTable();
using (DbCommand cmd = db.GetSqlStringCommand(sql))
{
db.AddInParameter(cmd, "@userName", DbType.String, userName);
dt = db.ExecuteDataSet(cmd).Tables[0];
}
return dt;
}
执行上面的代码后,返回空记录,可DB里明明是有数据的。经过仔细研究,发现LIKE语句的使用有问题,只要把上例中红色标识的代码替换为
WHERE 1 = 1 AND [UserName] LIKE '%' + @userName + ’%'";
程序执行后可以正常返回记录。
public DataTable GetContractReportData(string userName)
{
Database db = DatabaseFactory.CreateDatabase("SQLDBConnection");
string sql = @"SELECT
[UserName]
,[Birthday]
FROM [UserInfo]
WHERE 1 = 1 AND [UserName] LIKE '%@userName%' ";
DataTable dt = new DataTable();
using (DbCommand cmd = db.GetSqlStringCommand(sql))
{
db.AddInParameter(cmd, "@userName", DbType.String, userName);
dt = db.ExecuteDataSet(cmd).Tables[0];
}
return dt;
}
执行上面的代码后,返回空记录,可DB里明明是有数据的。经过仔细研究,发现LIKE语句的使用有问题,只要把上例中红色标识的代码替换为
WHERE 1 = 1 AND [UserName] LIKE '%' + @userName + ’%'";
程序执行后可以正常返回记录。
相关文章推荐
- 使用微软mschart遇到的问题
- php使用odbc执行复杂函数遇到的问题,sql语句直接在sqlserver数据库中运行有结果,使用php总是为空
- 在使用EF开发时候,遇到 using 语句中使用的类型必须可隐式转换为“System.IDisposable“ 这个问题。
- mybatis中使用if语句遇到的问题
- 使用Hibernate 5.0、4.0、3.0 createSQLQuery执行原生Sql语句 遇到问题及解决办法集锦
- 使用微软的Ajax控件遇到的后台js提示语句不起作用的解决方案其一
- 使用union all 遇到的问题(俩条sql语句行数的和 不等于union all 后的 行数的和 !);遗留问题 怎么找到 相差的呐俩条数据 ?
- Mysql的sql语句中使用判断语句遇到的问题
- 关于Hibernate在使用原生SQL语句多表查询所遇到的问题
- 使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)
- 【求助】使用SQL语句优化工具遇到的问题
- 【求助】使用SQL语句优化工具遇到的问题
- 使用微软 AppFabric 遇到问题
- 在ORM框架中使用原生sql语句进行聚合查询遇到的问题
- ibatis中写SQL语句时使用in遇到的问题描述
- perl grep在条件语句中使用遇到的问题
- python使用中遇到的问题记录
- 使用bugly做应用升级时android 7.0上遇到的问题
- 使用AndroidStudio经常遇到的三个常见问题 及解决
- 使用idea时候遇到的一些输出文件或者读取文件路径问题