一个经典的ADO.NET入门例子

众所周知,ADO.NET相对于ADO的最大优势在于对于数据的更新修改可以在与数据源完全断开联系的情况下进行,然后再把数据更新情况传回到

数据源。这样大大减少了连接过多对于数据库服务器资源的占用。下面是我在《ADO.NET实用指南》这本书上看到的一个例子,比较清楚的讲解

了ADO.NET的使用方法。 
Imports System.Data.SqlClient 
Imports System.Data 
Imports System.Data.Common

Public Class Form1 
Inherits System.Windows.Forms.Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
Dim conn As New SqlConnection("data source=localhost;initial catalog=StudentCourse;" & _ 
"User ID=;Password=;") 
Dim ds As New DataSet 
Try 
conn.Open() '在形成SqlDataAdapter前打开conn 
Dim daAuthors As New SqlDataAdapter("Select * From SC", conn) 
Dim bldr As New SqlCommandBuilder(daAuthors) 
daAuthors.Fill(ds,"SC") 
conn.Close() '在填充完ds后关闭连接,接着对ds进行操作

Dim tbl As New DataTable 
tbl = ds.Tables("SC")

Dim rowVals(3) As Object 
rowVals(0) = "5" 
rowVals(1) = "00003" 
rowVals(2) = "0001" 
rowVals(3) = 99 
Dim insertedRow As DataRow 
insertedRow = tbl.Rows.Add(rowVals) '添加一行

tbl.Rows(0).Delete() '删除一行

tbl.Rows(1).BeginEdit() 
tbl.Rows(1)("score") = 89 '修改一行 
tbl.Rows(1).EndEdit()

conn.Open() 
daAuthors.Update(ds.Tables("SC")) '须将结果传回数据源时打开连接,update 
conn.Close() 
Catch ex As Exception 
MessageBox.Show(ex.Message) 
End Try 
End Sub 
End Class

(0)

相关推荐

  • ADO.NET EF中的实体修改方法

    1.传统修改模式,看下列代码 复制代码 代码如下: using (NorthwindEntities context = new NorthwindEntities()) { Region region = context.Region.FirstOrDefault(v => v.RegionID == 4); region.RegionDescription = "Test"; context.SaveChanges(); } 监控SQL语句: 复制代码 代码如下: SQL1:

  • ASP.NET:ADO.NET的DataAdapter对象

    DataAdapter对象可以隐藏和Connection.Command对象沟通的细节,通过DataAdapter对象建立.初始化DataTable,从而和DataSet对象结合起来在内存存放数据表副本,实现离线式数据库操作,事实上在8.1.2节中,我们在介绍DataSet数据模型的时候就已经演示了如何利用DataAdapter对象进行数据库连接.DataAdapter对象允许将DataSet对象中的数据保存到数据源中,也可以从数据源中读取数据,并且也可以底层数据保存体进行数据的添加.删除.更新

  • ASP.NET中实现把Json数据转换为ADO.NET DataSet对象

    Json数据转换为ADO.NET DataSet其实方法有很多,Newtonsoft.Json也提供了DataSet的Converter用以转换Json数据.但是有些情况下DataSet Converter并不管用,而且也不一定能够满足项目需要.这里介绍另一种简单有效的方法,能够方便快速地将Json数据转为ADO.NET DataSet. 设计 事实上Newtonsoft.Json已经提供了一套完整的Json数据文档结构,Newtonsoft.Json.Linq命名空间下提供了这种文档结构的对象

  • ADO.Net 类型化DataSet的简单介绍

    一.弱类型DataSet的缺点:1.只能通过列名引用,dataset.Tables[0].Rows[0]["Age"],如果写错了列名编译时不会发现错误,因此开发时必须要记着列名.2.int age=Convert.ToInt32(dataset.Rows[0]["Age"]),取到的字段的值是object类型,必须小心翼翼的进行类型转换,不仅麻烦,而且容易出错.3.将DataSet传递给其他使用者,使用者很难识别出有哪些列可以供使用.4.运行时才能知道所有列名,数

  • ADO.NET之连接池技术的使用详解

    连接到数据库服务器通常需要一定的时间,且服务器也需要一定的资源来处理连接.Web应用程序有时处理成千上万的连接,需要相当多的资源来处理连接.ADO.NET具有连接池的特性,连接池的功能是保留一定数量的连接,当用户使用相同的连接字符串再次连接服务器时,ASO.NET将使用连接池中的连接而不用重新发起一次连接过程.当调用Close方法关闭连接时,ADO.NET将使用连接池中的连接而不用重新发起一次连接过程.当调用Close方法关闭连接时,连接将会返回到连接池中,下次再次调用Open方法时,将从连接池

  • ADO.NET中的五个主要对象的详细介绍与应用

    首先看一个例子 配置文件 复制代码 代码如下: <configuration> <connectionStrings> <add name=connStr" connectionString="Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\SS.mdf;Integrated Security=true;User Instance=True"/> </connecti

  • ADO.NET编程之基础知识

    一.ADO.NET基础 程序和数据库交互,要通过ADO.NET进行:通过ADO.NET就能在数据库中执行SQL了.ADO.NET中提供了对不同数据库的统一操作接口(ODBC).另外还有一种操作数据库的接口是JDBC. ADO.NET中通过SqlConnection类创建到SQL Server的链接,Sqlconnection代表一个数据库的链接,ADO.NET中的链接等资源都实现了IDisposable接口. 实现了IDisposable接口的对象,在使用完了,要进行资源的释放.调用Dispos

  • ADO.NET实体数据模型详细介绍

    OleDbConnection,OracleConnection 或者SqlConnection这种连接,直接执行sql语句.现在的连接方式执行sql语句有了很大的不同,下面先看看简单的单表的增删改查操作,然后再看多表的关联查询,带参数查询等.一.ADO.NET Entity对单表的增删改查有一个表,即在工程中是一个实体user,为了测试方便,所有字段为string型. 1.增加新记录增加一条记录如下: [csharp] using (OracleEntities entities = new

  • ADO.NET 读取EXCEL的实现代码((c#))

    // 连接字符串 复制代码 代码如下: // 连接字符串                     string xlsPath = Server.MapPath("~/app_data/somefile.xls"); // 绝对物理路径         string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +                         "Extended Properties=Exc

  • 一个经典的ADO.NET入门例子

    众所周知,ADO.NET相对于ADO的最大优势在于对于数据的更新修改可以在与数据源完全断开联系的情况下进行,然后再把数据更新情况传回到 数据源.这样大大减少了连接过多对于数据库服务器资源的占用.下面是我在<ADO.NET实用指南>这本书上看到的一个例子,比较清楚的讲解 了ADO.NET的使用方法.  Imports System.Data.SqlClient  Imports System.Data  Imports System.Data.Common Public Class Form1 

  • 用Python设计一个经典小游戏

    本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额. 玩家选择下注,押大或押小: 输入下注金额: 摇3个骰子,11≤骰子总数≤18为大,3≤骰子总数≤10为小: 如果赢了,获得1倍金额,输了,扣除1倍金额,本金为0时,游戏结束. 程序运行结果是这样的: 现在,我们来梳理下思路. 我们

  • 一个oracle+PHP的查询的例子

    http://qdlover.yeah.net   一个oracle+PHP的查询的例子   本来我不用php了,可是还是有很多朋友问我,我就做了一个例子,具体函数请查手册   其实oracle的函数和别的也差不多,只不过它这里多了一个定义输出变量的过程,   如果学过pl/sql的人都知道的(不过听说只有清华和西安交大用它做网站).   就是OCIDefineByName($id,"ROWNUM",&$rownum);对应了查询中的rownum,一个对应一个,   而且最应该

  • Python实现一个数组除以一个数的例子

    如果直接用python的一个list除以一个数,会报错: a = [1.0, 1.0, 1.0] c = a/3 print(c) TypeError: unsupported operand type(s) for /: 'list' and 'int' 使用Numpy可以轻松做到: import numpy as np a = np.array([1,1,1]) c = a/3 print(c) 以上这篇Python实现一个数组除以一个数的例子就是小编分享给大家的全部内容了,希望能给大家一个

  • MySQL UPDATE 语句一个“经典”的坑

    目录 1.有问题的SQL语句 有人问,比如下图: 问题归纳起来就是:在MySQL里面update一条记录,语法都正确的,但记录并没有被更新... 刚遇到这个问题的时候,我拿到这条语句直接在测试库里面执行了一把,发现确实有问题,但和开发描述的还是 有区别 ,这里我用测试数据来模拟下: 1.有问题的SQL语句 执行之后的记录是: 可以看到,结果并不像这位开发同学说的"好像没有效果",实际上是有效果的: why? 看起来,语法是完全没有问题,翻了翻MySQL官方文档的update语法: 看到

  • 详解React-Todos入门例子

    最近学完React的最基本概念,闲下来的时候就自己写了一个Todo-List的小应用.这里做个简略的说明,给想好好学React的新手看. 开始之前 这里我用了webpackb做了babel和JSX预处理和模块打包.所以对React和一些ES2015(ES6)的语法要有一定的了解.我相信学习ES2015绝对是划算的,因为它是Js的规范.这里给出学习的地方,阮一峰老师的ECMAScript 6 入门或者babel的相关文档Learn ES2015. 最后的实际效果: 我们需要做到的功能有: 可以在最

  • 一个用SearchValidAddr搜索基址的例子

    复制代码 代码如下: #SetArgsOnCompile #诛仙基址搜索工具脚本.此脚本用于帮助一些使用不了官方发布的基址的朋友. #使用方法: #首先在参数中填入自己角色的HP和MP值,需要的话适合修改搜索范围.然后在诛仙游戏中启动脚本. #当输出"搜索到可能的基址"字样时,记下输出的基址,在诛仙打怪脚本中设置参数"基地址". #如果输出多个基址,那么退出游戏多搜索几次,找一个不变的地址使用. #如果没有输出,调整范围再搜索,但是不要一次搜索的范围太大,速度会很慢

  • 一个简单的XML Schema的例子

    我们可以看到,DTD的语法相当复杂,并且它不符合XML文件的标准,自成一个体系.也就是说DTD文档本身并不是一个良好形式的XML文档,上面的关于DTD的介绍也仅仅是作了一个简介,目的是帮助大家能读懂DTD文件以及在必要时创建简单的DTD文件,因为现在很多的XML应用是建立在DTD之上的. 另外一个代替DTD的就是W3C定义的Schema,Schema从字面意义上来说,可以翻译成模式.大纲.计划.规划等等.它的基本意思就是说为XML文档制定一种模式. Schema相对于DTD的明显好处

  • 经典算法:基数排序的小例子

    1.概述 基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较.由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数.基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Machine)上的贡献. 原理:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零.然后,从最低位开始,依次进行一次排序.这样从最低位排序一直到最高位排序完成以后,

  • 一个经典的PHP验证码类分享

    我们通过PHP的GD库图像处理内容,设计一个验证码类Vcode.将该类声明在文件vcode.class.php中,并通过面向对象的特性将一些实现的细节封装在该类中.只要在创建对象时,为构造方法提供三个参数,包括创建验证码图片的宽度.高度及验证码字母个数,就可以成功创建一个验证码类的对象.该类的声明代码如下所示: <?php class Vcode { private $width; //宽 private $height; //高 private $num; //数量 private $code

随机推荐