奇怪!同一条sql语句在数据库和代码中执行结果不同?!当然是人错了 ……
来源:互联网 发布:vb中text是什么意思 编辑:程序博客网 时间:2024/06/06 14:22
sql语句就是它:
select count(1) from syscolumns where [id]=object_id( 'tablecommon' )
判断数据库中是否存在表tablecommon,本想让在数据库中查到的值返回到程序里,值却总不是想要的:
程序里返回 -1
sql里返回大于0的值(意为存在该表)
如果代码正确的话,程序里应该返回和sql里一样的值
程序里是这么写的:
D层类:
SqlHelper类:
执行不带参数的查询存储过程或sql语句:
public DataTable ExecuteQuery(string cmdText, CommandType cmdType) { DataTable dt = new DataTable(); cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = cmdType; using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { dt.Load(sdr); } return dt; }
执行不带参数的增删改存储过程或sql语句:
public int ExecuteNonQuery(string cmdText, CommandType cmdType) { int res; try { cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = cmdType; res = cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } } return res; }
看到这里有没有发现我犯的错误?
没错,我调用SqlHelper方法调错了,咱们开始缕:
我写的是一个select语句,是用来查询的,虽然返回结果可以用来直观判断表的存在与否,但不能直接调用返回值是int类型的增删改方法!
仍需调用返回值是datatable类型的查询方法,之后将datatable中的值强制转换为int类型
所以,接下来,将D层类修改下,就搞定了!
public bool IsExitsTable() { Boolean flag = false; string sql = "IfExistsTable"; DataTable dt=sqlhelper.ExecuteQuery(sql,CommandType.StoredProcedure); int res = Convert.ToInt32(dt.Rows[0][0]); if (res > 0) { flag = true; return flag; } else { return flag; } }
0 0
- 奇怪!同一条sql语句在数据库和代码中执行结果不同?!当然是人错了 ……
- 同一条SQL在不同的数据库中执行,有一个会报错.
- 自动在多个DB上执行同一条sql语句
- Swift在同一条语句中传递方法结果到方法参数情况的处理
- 自动在多个DB上执行同一条sql语句 ( 存储过程版 )
- Mybatis中$和#的注入使得在控制台写的sql语句和数据库写的语句查询结果不一致。
- POWERSHELL-在不同的实例和数据库执行SQL
- C#中使用SQL语句生成DataTable,对不同的数据库,处理方式不同,返回的结果属性不同
- 如何在sqlplus中查看oracle数据库sql语句执行计划,执行时间和统计信息
- 在 MySQL 数据库中使用 C 执行 SQL 语句
- [转] 在 MySQL 数据库中使用 C 执行 SQL语句
- 在MySQL数据库中使用C执行SQL语句
- [转] 在 MySQL 数据库中使用 C 执行 SQL语句
- [转] 在 MySQL 数据库中使用 C 执行 SQL语句
- 在MySQL数据库中使用C执行SQL语句
- 在MySQL数据库中使用C执行SQL语句
- SQL语句在数据库中是如何执行的
- Java程序和Oracle数据库调用相同的SQL查询语句,结果却不同
- Objective-c语言_面向对象(便利初始化函数,构造器和多态的结合)
- 并发、线程、进程和多线程技术
- Jetty的Server创建与启动
- AS依赖第三方源码及问题解决(例:PullToRefresh)
- Android中软解码和硬解码的优先级
- 奇怪!同一条sql语句在数据库和代码中执行结果不同?!当然是人错了 ……
- 在NSString中显示%号两两种办法
- Response.Redirect 产生的“正在中止线程”错误
- document.forms[0].submit();的使用问题
- Android弹出窗口中ListView显示内容
- 实习第一个月总结2015.12.30
- iOS用block传值
- Java中synchronized的使用实例
- Android-Content Provide