zoukankan      html  css  js  c++  java
  • 连接类

    一、SqlCommand

    1、执行带有参数的存储过程

    代码
     1     Sub a(ByVal connectionString As String)
     2         Using connection As New SqlConnection(connectionString)
     3             Using cmd = connection.CreateCommand
     4                 cmd.CommandType = CommandType.StoredProcedure
     5                 cmd.CommandText = "uspGetCustomerById"
     6 
     7                 Dim parm = cmd.CreateParameter
     8                 parm.ParameterName = "@Id"
     9                 parm.Value = "AROUT"
    10                 cmd.Parameters.Add(parm)
    11 
    12                 Dim id As String = cmd.Parameters("@Id").Value
    13             End Using
    14         End Using
    15     End Sub
    16 
    • sqlserver要求参数名与存储过程中定义的参数名相匹配,与参数的创建次序无关。
    • 第7~10行为参数的定义方法。
    • 第12行为访问参数的方法。

    2、ExecuteNonQuery方法

    代码
     1     Sub b(ByVal connectionString As String)
     2         Using connection As New SqlConnection(connectionString)
     3             Using cmd = connection.CreateCommand
     4                 cmd.CommandText = "UPDATE sales SET qty = qty + 1 WHERE qty > 50"
     5                 connection.Open()
     6                 Dim count As Integer = cmd.ExecuteNonQuery
     7             End Using
     8         End Using
     9     End Sub
    10 
    • 第4行为命令文本,为一个修改操作。
    • 第6行返回一个整数,表示操作所影响的行数。

    3、 ExecuteScalar方法

    当希望查询返回单行单列时,使用ExecuteScalar方法

    代码
     1     Sub c(ByVal connectionString As String)
     2         Using connection As New SqlConnection(connectionString)
     3             Using cmd = connection.CreateCommand
     4                 cmd.CommandText = "SELECT COUNT(*) FROM Sales"
     5                 connection.Open()
     6                 Dim count As Integer = cmd.ExecuteScalar
     7                 MessageBox.Show(count.ToString)
     8             End Using
     9         End Using
    10     End Sub
    11 

    4、ExecuteReader方法与SqlDataReader对象

    代码
     1     Sub d(ByVal connectionString As String)
     2         Using connection As New SqlConnection(connectionString)
     3             Using cmd = connection.CreateCommand
     4                 cmd.CommandText = "SELECT stor_id, ord_num FROM Sales"
     5                 connection.Open()
     6                 Dim rdr = cmd.ExecuteReader
     7                 While rdr.Read
     8                     MessageBox.Show(rdr("stor_id"& "" & rdr("ord_num"))
     9                 End While
    10             End Using
    11         End Using
    12     End Sub
    13 
    • 第6行,只有通过cmd.ExecuteReader方法才能生成rdr
    • 第7~9行,持续遍历结果,直到数据的末尾(Read方法返回False)

     二、SqlDataAdapter

    1、Fill方法

    如何用Fill方法加载一个DataTable

    代码
     1     Sub e(ByVal connectionString As String)
     2         Using connection As New SqlConnection(connectionString)
     3             Using cmd = connection.CreateCommand
     4                 cmd.CommandText = "SELECT pub_id,pub_name FROM publishers"
     5 
     6                 Dim pubsDataSet As New DataSet("Pubs")
     7                 Dim da As New SqlDataAdapter(cmd)
     8                 da.Fill(pubsDataSet, "publishers")
     9             End Using
    10         End Using
    11     End Sub
    12 
    • 第7行生成具有SelectCommand的适配器
    • 第8行填充pubsDataSet.Tables("publishers")表

    2、Update方法

    代码
     1     Sub f(ByVal connectionString As String)
     2         Using connection As New SqlConnection(connectionString)
     3             Using cmd = connection.CreateCommand
     4                 cmd.CommandText = "SELECT * FROM publishers"
     5 
     6                 Dim pubsDataSet As New DataSet("Pubs")
     7                 Dim da As New SqlDataAdapter(cmd)
     8                 Dim bldr As New SqlCommandBuilder(da)
     9                 da.Fill(pubsDataSet, "publishers")
    10                 'modify data here
    11                 pubsDataSet.Tables("publishers").Rows(0)("pub_name"= "Hello"
    12                 pubsDataSet.Tables("publishers").Rows.Add("9911""tailspin Toys""Paris"Nothing"France")
    13                 da.UpdateBatchSize = 0
    14                 da.Update(pubsDataSet, "publishers")
    15             End Using
    16         End Using
    17         MessageBox.Show("Update Complete")
    18     End Sub
    19 
    • 第7、8行用来生成具有4个命令的适配器
    • 第13行使修改结果批量保存到数据库,以提高性能。
    • 第14行用来将第11、12行修改的数据传送到数据库中。
  • 相关阅读:
    Redis配置不当可导致服务器被控制,已有多个网站受到影响 #通用程序安全预警#
    Webstorm10.0.3破解程序及汉化包下载、Webstorm配置入门指南
    用Log Parser Studio分析IIS日志
    使用SQL语句创建和删除约束
    MVC Controller 基类中的Request
    Entity Framework 4.1 绕过 EF 查询映射
    Bash脚本编程学习笔记09:数组
    CentOS 7上的系统管理之:Systemd和systemctl
    Linux是如何启动的?
    CentOS 7上的进程管理
  • 原文地址:https://www.cnblogs.com/cuishengli/p/1722356.html
Copyright © 2011-2022 走看看