datagridview实现批量插入与更新
来源:互联网 发布:java的排序函数 编辑:程序博客网 时间:2024/06/08 13:58
一、批量更新
1、创建表
USE [test]GO/****** Object: Table [dbo].[test] Script Date: 07/20/2017 00:43:53 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[test]( [ID] [int] IDENTITY(1,1) NOT NULL, [mycode] [nvarchar](50) NULL, [myname] [nvarchar](50) NULL, [mydes] [nvarchar](50) NULL) ON [PRIMARY]GO
2、创建用户定义表类型USE [test]GO/****** Object: UserDefinedTableType [dbo].[testtable] Script Date: 07/20/2017 00:44:15 ******/CREATE TYPE [dbo].[testtable] AS TABLE( [ID] [int] NULL, [testcode] [nvarchar](50) NULL, [testname] [nvarchar](50) NULL, [testdes] [nvarchar](50) NULL)GO3、创建批量插入存储过程USE [test]GO/****** Object: StoredProcedure [dbo].[test_proc] Script Date: 07/20/2017 00:44:32 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[test_proc]( @tt [testtable] READONLY)ASINSERT INTO [dbo].[test] ([mycode],[myname],[mydes]) SELECT oc.[testcode],oc.[testname],oc.[testdes] FROM @tt AS oc;GO4、创建批量更新存储过程:USE [test]GO/****** Object: StoredProcedure [dbo].[update_twotable] Script Date: 07/20/2017 00:45:03 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[update_twotable]@tt [testtable] READONLYASBEGIN-- SET NOCOUNT ON added to prevent extra result sets from-- interfering with SELECT statements.SET NOCOUNT ON; UPDATE aSET a.mycode=b.testcode,a.myname=b.testname,a.mydes=b.testdesFROM test a,(select ID,testcode,testname,testdesfrom @tt) bWHERE a.id = b.idENDGO5、在VISUAL STUDIO创建工程及FORM6、FORM代码如下:
Public Class Form1#Region "定义变量" Dim cnstring As String = "Server =(local); Integrated Security=True; Initial Catalog=test;" Dim cn As New SqlClient.SqlConnection(cnstring) Dim cmd As SqlClient.SqlCommand = cn.CreateCommand() Dim da As New SqlClient.SqlDataAdapter Dim ds As New DataSet Dim dt As New DataTable#End Region Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim s As String = "select * from [test]" cmd.CommandText = s da.SelectCommand = cmd da.Fill(ds) dt = ds.Tables(0) DataGridView1.DataSource = dt End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Try Dim sqlbulkcopy As New SqlClient.SqlBulkCopy(cnstring, SqlClient.SqlBulkCopyOptions.KeepIdentity) sqlbulkcopy.DestinationTableName = "test" '数据库中的表名 sqlbulkcopy.ColumnMappings.Add("mycode", "mycode") sqlbulkcopy.ColumnMappings.Add("myname", "myname") sqlbulkcopy.ColumnMappings.Add("mydes", "mydes") sqlbulkcopy.WriteToServer(DataGridView1.DataSource) MsgBox("成功!") Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick DataGridView1.BeginEdit(True) End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim t As New DataTable t = DataGridView1.DataSource Dim cmd2 As New SqlClient.SqlCommand Try With cmd2 .Connection = cn .CommandText = "update_twotable" .CommandType = CommandType.StoredProcedure .Parameters.Add("@tt", SqlDbType.Structured).Value = t If cn.State <> ConnectionState.Open Then cn.Open() End If End With cmd2.ExecuteNonQuery() MsgBox("OK!") Catch ex As Exception Finally cn.Close() End Try End SubEnd Class
7、批量插入效果如下:点击批量插入后效果如下:
8、批量更新后效果如下:
阅读全文
0 0
- datagridview实现批量插入与更新
- 批量插入与更新
- JDBC批量插入与更新
- mybatis批量插入与批量更新。
- ibatis 批量插入,批量更新,批量删除,xml与Java代码实现方式
- ASP.net 实现批量更新/插入
- 基于MyBatis的批量插入更新实现
- Hibernate 批量插入、更新与删除
- Hibernate 批量插入、更新与删除
- Hibernate 批量插入、更新与删除
- Hibernate 批量插入、更新与删除
- mybatis的批量插入与更新
- Mybatis的批量插入与更新
- SQL SERVER的批量插入与批量更新
- CYQ.Data V5 批量插入与批量更新示例
- Mybatis 批量插入、批量更新
- mybatis3批量更新 批量插入
- SQLServer批量更新、批量插入
- 自主编程实现栈和链式栈
- java基础之int数值溢出
- eclipse 和 myeclipse 代码自动提示
- java(9)集合类(转载)
- 计算机网络--HTTP协议
- datagridview实现批量插入与更新
- Debugger APIs
- android 牛人 汇集
- Yann LeCun:深度学习硬件前瞻
- Activity的生命周期以及两个activity之间跳转的问题
- Java工具类_随机生成任意长度的字符串【密码、验证码】
- java打印杨辉三角
- LeetCode 637 : Average of Levels in Binary Tree(java)
- Ubuntu 14.04 配置tftp服务器