能正确执行的SQLsql查询语句大全讲解,用Execute怎么就不能

EF5中 执行 sql语句使用Database.ExecuteSqlCommand 返回影响的行数 ; EF5执行sql查询语句 Database.SqlQuery 带返回值
时间: 01:16:26
&&&& 阅读:3064
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&一: 执行sql语句,返回受影响的行数
在mysql里面,如果没有影响,那么返回行数为  -1 ,sqlserver 里面  还没有测试过
using (var ctx = new MyDbContext())
ctx.Database.ExecuteSqlCommand(&UPDATE Person SET Name = ‘Michael‘ WHERE PersonID = 1&);
二 : Database.SqlQuery&T&   EF5执行sql查询语句 Database.SqlQuery 带返回值
这个准确的说是  IEnumerable&T& SqlQuery&T&(string sql, params object[] parameters)  ,注意返回值是 IEnumerable
这个是执行sql语句,返回你想要的类型的列表
dbMain.Database.SqlQuery&int&(&select max(UserId) from tb_user_account&).First();
或者假如你自己有个类别
public class PersonView
public int PersonID { get; set; }
public string Name { get; set; }
那么就可以直接返回这个 PersonView类
using (var ctx = new MyDbContext())
var peopleViews = ctx.SqlQuery&PersonView&(&SELECT PersonID, Name FROM Person&).ToList();
直接返回你想要的数据. 例如这里是 List&PersonView& 列表标签:&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/joeylee/p/3868761.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!在JAVA中,使用JDBC访问数据库时可以执行SQL语句完成对数据库造作的是_百度知道
在JAVA中,使用JDBC访问数据库时可以执行SQL语句完成对数据库造作的是
在JAVA中,使用JDBC访问数据库时可以执行SQL语句完成对数据库造作的是()AConnectionBStatementCResultSetDDriverManager...
在JAVA中,使用JDBC访问数据库时可以执行SQL语句完成对数据库造作的是()A
ConnectionB
StatementC
ResultSetD
DriverManager
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
hsf521024知道合伙人
采纳数:18
获赞数:141
Statement1、创建 Statement 对象
建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法 createStatement 创建,如下列代码段中所示:Connection con = DriverManager.getConnection(url, &sunny&, &&);Statement stmt = con.createStatement();
为了执行 Statement 对象,被发送到数据库的 SQL 语句将被作为参数提供给 Statement 的方法:ResultSet rs = stmt.executeQuery(&SELECT a, b, c FROM Table2&);
2、使用 Statement 对象执行语句
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。
方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。
方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能,所以本概述后面将在单独一节中对其进行介绍。
执行语句的所有方法都将关闭所调用的 Statement 对象的当前打开结果集(如果存在)。这意味着在重新执行 Statement 对象之前,需要完成对当前 ResultSet 对象的处理。
应注意,继承了 Statement 接口中所有方法的 PreparedStatement 接口都有自己的 executeQuery、executeUpdate 和 execute 方法。Statement 对象本身不包含 SQL 语句,因而必须给 Statement.execute 方法提供 SQL 语句作为参数。PreparedStatement 对象并不将 SQL 语句作为参数提供给这些方法,因为它们已经包含预编译 SQL 语句。CallableStatement 对象继承这些方法的 PreparedStatement 形式。对于这些方法的 PreparedStatement 或 CallableStatement 版本,使用查询参数将抛出 SQLException。
3、语句完成
当连接处于自动提交模式时,其中所执行的语句在完成时将自动提交或还原。语句在已执行且所有结果返回时,即认为已完成。对于返回一个结果集的 executeQuery 方法,在检索完 ResultSet 对象的所有行时该语句完成。对于方法 executeUpdate,当它执行时语句即完成。但在少数调用方法 execute 的情况中,在检索所有结果集或它生成的更新计数之后语句才完成。
Statement 对象用于将 SQL 语句发送到数据库中。实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL 语句的包容器:Statement、PreparedStatement(它从 Statement 继承而来)和 CallableStatement(它从 PreparedStatement 继承而来)。它们都专用于发送特定类型的 SQL 语句: Statement 对象用于执行不带参数的简单 SQL 语句;PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句;CallableStatement 对象用于执行对数据库已存储过程的调用。
Statement 接口提供了执行语句和获取结果的基本方法。PreparedStatement 接口添加了处理 IN 参数的方法;而 CallableStatement 添加了处理 OUT 参数的方法。有些 DBMS 将已存储过程中的每条语句视为独立的语句;而另外一些则将整个过程视为一个复合语句。在启用自动提交时,这种差别就变得非常重要,因为它影响什么时候调用 commit 方法。在前一种情况中,每条语句单独提交;在后一种情况中,所有语句同时提交。
4、关闭 Statement 对象
Statement 对象将由 Java 垃圾收集程序自动关闭。而作为一种好的编程风格,应在不需要 Statement 对象时显式地关闭它们。这将立即释放 DBMS 资源,有助于避免潜在的内存问题。
szcs知道合伙人
采纳数:67
获赞数:147
擅长:暂未定制
agalloch21知道合伙人
agalloch21
采纳数:487
获赞数:1451
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。存储过程中sp_executesql执行sql语句带参数问题
[问题点数:100分,结帖人hankai]
本版专家分:0
结帖率 75%
CSDN今日推荐
本版专家分:0
本版专家分:0
本版专家分:84119
2014年2月 总版技术专家分月排行榜第一
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2016年10月优秀小版主
2014年4月 荣获微软MVP称号
本版专家分:65
本版专家分:25
本版专家分:45827
2017年3月 VB大版内专家分月排行榜第一2016年12月 VB大版内专家分月排行榜第一2016年5月 VB大版内专家分月排行榜第一2016年1月 VB大版内专家分月排行榜第一2015年12月 VB大版内专家分月排行榜第一2015年11月 VB大版内专家分月排行榜第一2015年10月 MS-SQL Server大版内专家分月排行榜第一2015年9月 VB大版内专家分月排行榜第一2015年9月 MS-SQL Server大版内专家分月排行榜第一2015年8月 VB大版内专家分月排行榜第一2015年8月 MS-SQL Server大版内专家分月排行榜第一2015年7月 VB大版内专家分月排行榜第一2015年7月 MS-SQL Server大版内专家分月排行榜第一2015年6月 VB大版内专家分月排行榜第一2015年5月 VB大版内专家分月排行榜第一2015年4月 VB大版内专家分月排行榜第一2015年3月 VB大版内专家分月排行榜第一2015年2月 VB大版内专家分月排行榜第一2014年11月 VB大版内专家分月排行榜第一2014年9月 VB大版内专家分月排行榜第一2014年8月 VB大版内专家分月排行榜第一2014年7月 VB大版内专家分月排行榜第一2013年7月 VB大版内专家分月排行榜第一2013年4月 VB大版内专家分月排行榜第一2010年2月 VB大版内专家分月排行榜第一2010年1月 VB大版内专家分月排行榜第一2009年11月 VB大版内专家分月排行榜第一2009年9月 VB大版内专家分月排行榜第一2009年8月 VB大版内专家分月排行榜第一2009年7月 VB大版内专家分月排行榜第一2009年4月 VB大版内专家分月排行榜第一2009年3月 VB大版内专家分月排行榜第一2009年2月 VB大版内专家分月排行榜第一2009年1月 VB大版内专家分月排行榜第一2008年6月 VB大版内专家分月排行榜第一2007年12月 VB大版内专家分月排行榜第一2007年10月 VB大版内专家分月排行榜第一2007年9月 VB大版内专家分月排行榜第一
2016年11月 VB大版内专家分月排行榜第二2016年1月 MS-SQL Server大版内专家分月排行榜第二2015年12月 MS-SQL Server大版内专家分月排行榜第二2015年11月 MS-SQL Server大版内专家分月排行榜第二2015年5月 MS-SQL Server大版内专家分月排行榜第二2015年4月 MS-SQL Server大版内专家分月排行榜第二2015年1月 VB大版内专家分月排行榜第二2015年1月 MS-SQL Server大版内专家分月排行榜第二2014年12月 VB大版内专家分月排行榜第二2014年11月 MS-SQL Server大版内专家分月排行榜第二2014年9月 MS-SQL Server大版内专家分月排行榜第二2013年8月 VB大版内专家分月排行榜第二2013年6月 VB大版内专家分月排行榜第二2013年5月 VB大版内专家分月排行榜第二2010年4月 VB大版内专家分月排行榜第二2010年3月 VB大版内专家分月排行榜第二2008年12月 VB大版内专家分月排行榜第二2008年8月 VB大版内专家分月排行榜第二2008年7月 VB大版内专家分月排行榜第二2007年11月 VB大版内专家分月排行榜第二
2017年1月 MS-SQL Server大版内专家分月排行榜第三2015年6月 MS-SQL Server大版内专家分月排行榜第三2015年3月 MS-SQL Server大版内专家分月排行榜第三2015年2月 MS-SQL Server大版内专家分月排行榜第三2014年12月 MS-SQL Server大版内专家分月排行榜第三2014年10月 VB大版内专家分月排行榜第三2014年10月 MS-SQL Server大版内专家分月排行榜第三2014年8月 MS-SQL Server大版内专家分月排行榜第三2013年9月 VB大版内专家分月排行榜第三2013年3月 VB大版内专家分月排行榜第三2012年5月 VB大版内专家分月排行榜第三2012年4月 VB大版内专家分月排行榜第三2010年10月 VB大版内专家分月排行榜第三2010年8月 VB大版内专家分月排行榜第三2010年7月 VB大版内专家分月排行榜第三2009年5月 VB大版内专家分月排行榜第三2008年9月 VB大版内专家分月排行榜第三2008年4月 VB大版内专家分月排行榜第三2008年2月 VB大版内专家分月排行榜第三
匿名用户不能发表回复!|
其他相关推荐下次自动登录
现在的位置:
& 综合 & 正文
MySQL同时执行多条SQL语句解决办法
JDBC 4 MySQL在一个Statement中执行一条SQL语句的时候可以正确执行,如果同时执行多条,就会报SQL语法错误(com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL check the manual that corresponds to your MySQL server version for the right
syntax to use near ';....'),甚是费解。
经过网上查找,发现有两种解决办法:
1、最简单的办法,在MySQL的连接字符串中设置allowMultiQueries参数置为true,
如:jdbc.url=jdbc:mysql://localhost:3306/ibatis?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true 即可。
2、在程序中对SQL语句以分号拆分成多条SQL语句,然后使用Statement的addBatch方法,最后executeBatch就行(此处推荐使用PreparedStatement addBatch() and executeBatch() and clearBatch())。
综上是因为mysql的JDBC驱动不支持这种写法,不过sqlserver的倒是支持,oracle的jdbc中甚至都不能出现分号 否则报java.sql.SQLException: ORA-00911: invalid character异常。
http://blog.163.com/wang_hai_fei/blog/static//
http://yklovejava-163-com.iteye.com/blog/1601205
http://blog.csdn.net/yzsind/article/details/7853029
http://bbs.csdn.net/topics/
http://bbs.csdn.net/topics/
【上篇】【下篇】动态sql语句execute能执行insert 的复合语句么?_百度知道
动态sql语句execute能执行insert 的复合语句么?
比如insertintotablename1(select*fromtablename2where......)用EXECSQLPREPAREins_sqlFROM......EXECSQLEXECUTEIins_sql......这种模式的动态sql语句...
比如insert into tablename1 (select * from tablename2 where ......) 用EXEC SQL PREPARE ins_sql FROM ...... EXEC SQL EXECUTE Iins_sql ...... 这种模式的动态sql语句
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
匿名用户知道合伙人
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 sql数据库查询语句大全 的文章

 

随机推荐