首页
学习
活动
专区
圈层
工具
发布

在LINQ to SQL中使用Translate方法以及修改查询用SQL

使用Translate方法除了方便之外,生成的对象也会自动Attach到DataContext中,也就是说,我们可以继续对获得的对象进行操作,例如访问Item对象的Comments属性时会自动去数据库获取数据...虽然事实上我们也可以不使用using关键字而直接返回Translate方法生成的IEnumerable,不过这么做的话当前链接就得不到释放(释放,而不是关闭),也就是把处理数据连接的问题交给了方法的使用者...查看方法返回的结果就能知道,所有对象的OwnerID的值都是默认值“0”,这是怎么回事呢?使用SQL Profiler观察以上代码所执行SQL语句之后我们便可明白一切: SELECT [t0]....改变LINQ to SQL所执行的SQL语句   按照一般的做法我们很难改变LINQ to SQL查询所执行的SQL语句,但是既然我们能够将一个query转化为DbCommand对象,我们自然可以在执行之前改变它的...在LINQ to SQL中,默认会使用延迟加载,然后在必要的时候才会再去数据库进行查询。

5.8K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    jdbc 中 excute executeUpdate的用法作用

    使用哪一个方法由 SQL 语句所产生的内容决定。 方法executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。...被使用最多的执行 SQL 语句的方法是 executeQuery。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。...方法execute: 用于执行返回多个结果集、多个更新计数或二者组合的语句。...调用方法 getResultSet 可以获得两个或多个 ResultSet 对象中第一个对象;或调用方法 getUpdateCount 可以获得两个或多个更新计数中第一个更新计数的内容。...getResultSet 返回 null 意味着 不是结果集 可以理解为是一个更新计数或没有其它结果 getUpdateCount 返回影响的行数 -1 表示结果是结果集或没有结果

    1.1K20

    java数据库连接类使用方法

    或delete、语句等,返回值是一个整数,指示受影响的行数(即更新计数) execute():用于执行返回多个结果集、多个更新计数或二者组合的语句 语句完成 语句在已执行且所有结果返回时,即认为已完成...对于返回一个结果集的executeQuery()方法,在检索完ResultSet对象的所有行时该语句完成。...主要方法 ResultSet executeQuery(String sql):返回一个静态的sql查询结果 int executeUpdate(String sql):查询一行sql声明中insert...、update、delete的数目或返回0 void close():关闭同数据库的连接和所占有的JDBC资源 ResultSet类(纪录集) 作用:装载查询结果,并可以通过它的不同方法提取出查询结果...ResultSet包含符合SQL语句中条件的所有行,且它通过一套get方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。

    1.9K20

    执行对象Statement、PreparedStatement和CallableStatement详解 JDBC简介(五)

    execute Batch  executeQuery   用于产生单个结果集的语句,用于执行 SELECT 语句(SELECT无疑是是使用最多的 SQL 语句) ,返回值为ResultSet executeUpdate...对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。 execute   用于执行返回多个结果集、多个更新计数或二者组合的语句。...返回值指示类型情况:如果下一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在更多结果,则返回 false 小结: executeQuery 执行SELECT,返回结果集...executeUpdate 执行INSERT UPDATE DELETE 以及SQL DDL(数据定义语言)语句,返回受影响的行 execute可以执行所有SQL,所以他可能返回结果集,也可能返回受影响的行...Statement 是否是可池化的值 数据返回检索 默认情况下,数据库会将查询结果一次性返回给应用程序,这些数据会保存在内存中。

    2.7K41

    基于Calcite自定义JDBC Driver

    最近在公司享受福报,所以更新进度严重脱节了,本期依旧是一篇Calcite相关的文章,上一篇《基于Calcite自定义SQL解析器》有兴趣的童鞋可以移步去看看。...不知道正在读文章的你在刚开始使用JDBC编程的时候,是否很好奇jdbc规范是如何实现的?为什么通过URL,就能打开一个链接,这里面是如何运作的?我们自己是否可以定义一套自己的jdbc url规范?...是否想知道ResultSet是如何实现的?反正这些问题,是一直伴随我的编程生涯,直到遇到了Calcite。...,在这里,我们定义jdbc url字符串,并在创建连接的时候,对url进行分析,并将json的名字,注册到root schema 。...,还需要处理很多东西,可能很琐碎,也有很多乐趣,希望在逐步分解中,为大家带来一点不一样的东西,也期待您的意见与建议。

    2.3K30

    Java的数据库连接编程(JDBC)技术

    l 方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。一般不会需要该高级功能。...③如果想对多个结果集同时操作,必须创建出多个Statement对象,在每个Statement对象上执行SQL查询语句以获得相应的结果集。...④如果不需要同时处理多个结果集,则可以在一个Statement对象上顺序执行多个SQL查询语句,对获得的结果集进行顺序操作。...9.5.6、NULL结果值   要确定给定结果值是否是JDBC NULL,必须先读取该列,然后使用ResultSet.wasNull 方法检查该次读取是否返回JDBC NULL。   ...语句)并返回Resultset对象;(2)execute()可以执行各种SQL查询语句,并可能返回多个结果集(这一般主要发生在执行了返回多个结果集的存储过程时),此时可以采用Resultset类的getResultSet

    70010

    java JDBC连接数据库方法

    Statement 的方法: ResultSet rs = stmt.executeQuery(“SELECT a, b, c FROMTable2”); (2)使用 Statement 对象执行语句...使用哪一个方法由 SQL 语句所产生的内容决定。 方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。...INSERT、UPDATE 或 DELETE语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。...对于CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。 方法 execute用于执行返回多个结果集、多个更新计数或二者组合的语句。...因为多数程序员不会需要该高级功能,所以本概述后面将在单独一节中对其进行介绍。 执行语句的所有方法都将关闭所调用的 Statement 对象的当前打开结果集(如果存在)。

    38410

    calcite简单入门

    该步骤主要作用是校证Parser步骤中的AST是否合法,如验证SQL scheme、字段、函数等是否存在; SQL语句是否合法等....使用方式:实现Enumerable scan(DataContext root);,该函数返回Enumerable对象,通过该对象可以一行行的获取这个Table的全部数据。..., List filters );参数中多了filters数组,这个数据包含了针对这个表的过滤条件,这样我们根据过滤条件只返回过滤之后的行,减少上层进行其它运算的数据集;当使用TranslatableTable...,至于为什么不在返回一个Enumerable对象了,因为上面两种其实使用的是默认的执行计划,转换成EnumerableTableAccessRel算子,通过TranslatableTable我们可以实现自定义的算子...,我们能够使用SQL查询CSV文件中的数据。

    8.6K21

    JDBC基本知识

    java.sql.ResultSet:代表特定SQL语句执行后的数据库结果集。 这些类我们可以参考JDK API,里面有非常详细的说明。并且是中文的^_^ ?...对于CREATE TABLE或DROP TABLE等不操作行的语句,executeUpdate的返回值总为零。 方法execute:用于执行返回多个结果集、多个更新计数或两者组合的语句。...next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。...result=statement.executeQuery(sql); //用Statement对象执行SQL语句,返回结果集 while(result.next()) {...类的对象,使用该类的方法,得到许多关于结果集的信息,下面给出几个常用的方法: (1) getColumnCount():返回一个int值,指出结果集中的列数; (2) getColumnLabel(

    1.5K110

    【已解决】:java.sql.SQLException 问题

    使用哪一个方法由 SQL 语句所产生的内容决定。 方法executeQuery用于产生单个结果集的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法是 executeQuery。...实际上,相对于创建表来说,executeUpdate 用于更新表的时间更多,因为表只需要创建一次,但经常被更新。 方法execute用于执行返回多个结果集、多个更新计数或二者组合的语句。...例如,假定已知某个过程返回两个结果集,则在使用方法 execute 执行该过程后,必须调用方法 getResultSet 获得第一个结果集,然后调用适当的 getXXX 方法获取其中的值。...调用方法 getResultSet 可以获得两个或多个 ResultSet 对象中第一个对象;或调用方法 getUpdateCount 可以获得两个或多个更新计数中第一个更新计数的内容。...当 SQL 语句的结果不是结果集时,则方法 getResultSet 将返回 null。这可能意味着结果是一个更新计数或没有其它结果。

    63610

    JDBC基本知识

    java.sql.ResultSet:代表特定SQL语句执行后的数据库结果集。 这些类我们可以参考JDK API,里面有非常详细的说明。并且是中文的^_^ ?...对于CREATE TABLE或DROP TABLE等不操作行的语句,executeUpdate的返回值总为零。 方法execute:用于执行返回多个结果集、多个更新计数或两者组合的语句。...next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。...result=statement.executeQuery(sql); //用Statement对象执行SQL语句,返回结果集 while(result.next()) {...类的对象,使用该类的方法,得到许多关于结果集的信息,下面给出几个常用的方法: (1) getColumnCount():返回一个int值,指出结果集中的列数; (2) getColumnLabel(

    1.2K40

    JSP 五讲

    Concurrency 取值决定是否可以用结果集更新数据库,Concurrency取值: l  ResultSet.CONCUR_READ_ONLY:不能用结果集更新数据库中的表。...SET 数学成绩 =  88 WHERE 姓名='王名'");   注:你可以使用一个Statement对象进行更新和查询操作,但需要注意的是,当查询语句返回结果集后,没有立即输出结果集的记录,而接着执行了更新语句...要想输出记录就必须重新返回结果集。   在下面的例子8中,可以更新学生的各科的成绩。...注:你可以使用一个Statement对象进行添加和查询操作,但需要注意的是,当查询语句返回结果集后,没有立即输出结果集的记录,而接着执行了添加语句,那么结果集就不能输出记录了。...注:你可以使用一个Statement对象进行删除和查询操作,但需要注意的是,当查询语句返回结果集后,没有立即输出结果集的记录,而接着执行了删除语句,那么结果集就不能输出记录了。

    1.2K10

    JavaJDBC:详解

    本篇内容包括:JDBC 概述、JDBC 的执行流程(包括注册驱动、获取连接对象、创建 SQL 执行对象、执行SQL语句、遍历结果集、关闭资源(处理异常))以及 JDBC 的 Demo。...使用 JDBC 的好处: 程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的; 使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库...(INSERT、UPDATE 或 DELETE等)语句以及 DDL(CREATE、DROP等); boolean execute(String sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句...INTO ...") ; boolean flag = stmt.execute(sqlString ) ; 5、遍历结果集 两种情况:执行更新返回的是本次操作影响到的记录数;执行查询返回的结果是一个...使用结果集(ResultSet)对象的访问方法获取数据: while(rs.next()){ String name = rs.getString("name") ; // 此方法比较高效(列是从左到右编号的

    76320

    #MySQL在C++中的基本`api`讲解

    检查结果集是否为空 ​ 在上篇文章中我介绍了MySQL在C语言中的基本 api,虽然只是基本的接口,但是我们依旧可以发现有这许多问题,比如,创建对象后必须手动释放,查询结果后必须手动释放否则就会有大量的内存泄漏问题出现...->executeQuery("SELECT id, name FROM test_table")); 在上面的demo中我们发现使用 Statement 对象时,执行 SQL 查询和获取结果是一步完成的...你需要在调用 executeQuery、executeUpdate 等方法时传入 SQL 语句,并且方法会立即执行该语句并返回结果。...executeUpdate 用于 INSERT、UPDATE、DELETE 等语句,返回受影响的行数。 execute 是一个通用方法,可以执行任何 SQL 语句,并需要根据返回结果进一步处理。...检查结果集是否为空 在遍历之前可以检查结果集是否为空: if (!

    1.1K10
    领券