要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中。Excel软件对数据的修改和编辑具有很大的优势,而SQL Server在数据的查询、存储以及安全方面是Excel无法相比的。因此,通过Visual Basic实现了Excel和SQL server之间的数据传输可以很好地结合两者的优点,更好更快地编辑,修改和存储数据。

关键词:Visual Basic 2012;SQL server 2012;数据;传输;

1引言

在现代互联网信息爆炸的时代,信息不论在数量和内容上都会发生很快的更新,因此及时实现对信息的管理和更新非常重要,SQL server数据库在数据的存储、管理和查询方面非常便捷,尤其提供了很大程度的安全性,然而SQL server数据库在跨系统的数据交换仍存在一定的不便。在数据的编程方面也不能喝Excel相比。Excel在文件处理、保存、传送、交换数据方面非常便利,却在数据的集中管理和查询方面也不方便。本文主要研究了使用Visual实现Excel和SQL server数据之间的数据交换在信息管理系统的应用,包括将SQL server数据导入到Excel中,同时可以直接在Visual Basic 2012的可视化界面上对数据进行修改、删除和添加等编辑动作。

2.SQL server数据导入到Excel的实现

数据的导出主要是将SQL server 2012版本的数据库Books.mdf中的Authors表中的数据导出到Excel 2010文件的Sample Worksheet工作簿中,这样可以方便数据库的使用者下载自己需要的信息。主要的思路是将数据存入到一个新建的Excel中,然后存储起来以便使用。

2.1使用Visual Basic控件

在本案例中DataGridView数据库控件是实现Visual Basic 2012和SQL server2012数据库之间桥梁,通过它可以将数据库中的数据读取出来,然后在DataGridView数据库控件中显示出来。DataGridView控件就是以DataSet连接的数据库为数据源,在界面上可以对应的显示出来。

2.2 Visual Basic 2012中的控件DataGridView上显示 SQL Server 2012数据

2.2.1在Visual Basic 2012中创建SQL server To Excel项目。打开 Visual studio 2012,“开始”——“所有程序”——“ Microsoft Visual Studio 2012”—— Visual studio 2012——“文件”——“新建项目”——“visual basic”——“Windows 窗体应用程序”,在“名称”里输入“SQL server 2012 数据库导入到Excel 2010”,记下位置路径,准备后面使用“c:\users\administrator\documents\visual studio 2012\Projects”如图:

建成项目后,需添加必须的引用,添加“项目”——“添加引用”——“框架”(.NET)——“扩展”——“Microsoft.Office.Interop.Excel ”、“Microsoft.Office.tools.Excel”、“office”、“ADODB”。打开项目所在的目录“c:\users\administrator\documents\visual studio 2012\Projects”——“SQL server 2012 数据库导入到Excel 2010”——“SQL server 2012 数据库导入到Excel 2010”——“bin”——“debug”,将所建的数据库“Books.mdf”和“Books_log.ldf”复制到这里,这样可以实现在没有安装SQL server软件的另一台电脑上使用,决定了所编程软件的灵活性。由于操作数据库,所以要导入类,这样可以简化编写代码。在窗体代码顶部:输入代码


Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.Office
Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Tools.Excel
Imports Excel = Microsoft.Office.Interop.Excel

2.2.2 在窗体上添加一个DataGridView控件(属性默认)和一个Button控件(Text属性值为“导出到Excel 2010 文件”),在窗体类中定义连接字符串SqlConnection、Sqlcommand对象、SqlDataset对象、DataSet对象。输入代码:

Dim objconnection As SqlConnection = New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=" & My.Application.Info.DirectoryPath & "\books.mdf;Persist Security Info = False")
Dim objCommand As SqlCommand = New SqlCommand()
Dim objDataAdapter As New SqlDataAdapter()
Dim objDataSet As New DataSet()

提示:My.Application.Info.DirectoryPath指的就是所保存的项目文件中bin文件夹下的debug文件夹路径。

2.2.3在窗体加载事件(Form1_Load)中添加代码。

代码如下:

  objDataAdapter.SelectCommand = New SqlCommand()
  objDataAdapter.SelectCommand.Connection = objconnection
  objDataAdapter.SelectCommand.CommandText = "SELECT AuthorID,FirstName,LastName FROM Authors"
  objDataAdapter.SelectCommand.CommandType = CommandType.Text
  objconnection.Open()
  objDataAdapter.Fill(objDataSet, "Authors")
  objconnection.Close()
  DataGridView1.AutoGenerateColumns = True
  DataGridView1.DataSource = objDataSet
  DataGridView1.DataMember = "Authors"
  objDataAdapter = Nothing
  objconnection = Nothing

2.2.4本程序至此已全完成,进行运行测试。点击“运行”按钮,运行结果如图;单击“导出到Excel 2010文件”按钮,运行结果如图:

3结语

本文中所用到的数据库books.mdf是“Visual Basic 2012 How to Program”一书中的源代码中的文件。非常感谢这本书的作者Deital。笔者认为理的“魂”——简短,尽可能地删去了解释方面的语句。其实通过代码在DataGridView控件和Excel的界面可以做更改以致看起来更好。以后会再写一篇“Excel 2010 文件导入到SQL server 2012数据库”的文章,相互对应。

附:完整代码

 Imports System.Data
 Imports System.Data.SqlClient
 Imports Microsoft.Office
 Imports Microsoft.Office.Interop.Excel
 Imports Microsoft.Office.Tools.Excel
 Imports Excel = Microsoft.Office.Interop.Excel

 Public Class Form1
     Dim objconnection As SqlConnection = New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=" & My.Application.Info.DirectoryPath & "\books.mdf;Persist Security Info = False")
     Dim objCommand As SqlCommand = New SqlCommand()
     Dim objDataAdapter As New SqlDataAdapter()
     Dim objDataSet As New DataSet()

     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
         objDataAdapter.SelectCommand = New SqlCommand()
         objDataAdapter.SelectCommand.Connection = objconnection
         objDataAdapter.SelectCommand.CommandText = "SELECT AuthorID,FirstName,LastName FROM Authors"
         objDataAdapter.SelectCommand.CommandType = CommandType.Text
         objconnection.Open()
         objDataAdapter.Fill(objDataSet, "Authors")
         objconnection.Close()
         DataGridView1.AutoGenerateColumns = True
         DataGridView1.DataSource = objDataSet
         DataGridView1.DataMember = "Authors"
         objDataAdapter = Nothing
         objconnection = Nothing

     End Sub

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
         Dim xlApp As Microsoft.Office.Interop.Excel.Application
         Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
         Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
         xlApp = New Microsoft.Office.Interop.Excel.Application
         xlApp.Visible = True
         xlBook = xlApp.Workbooks.Add()
         xlSheet = CType(xlBook.Sheets.Add(), Excel.Worksheet)
         xlSheet.Name = "Sample Worksheet"
         xlApp.DisplayAlerts = False

         With xlSheet
             .Range("a1").CurrentRegion.Clear()
              To DataGridView1.Columns.Count 'i 为列
                 .Cells(, i) = DataGridView1.Columns(i - ).HeaderText
                    'j 为行
                     .Cells(j + , i) = DataGridView1.Item(i - , j).Value
                 Next j
             Next i
         End With

     End Sub
 End Class

Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010的更多相关文章

  1. Visual Basic 2012 借助DataGridView控件将Excel 2010数据导入到SQL server 2012

    (注:注释的颜色原本为绿色,在这里变为黑色,有点不便,但不会造成阅读影响.放入Visual Basic2012代码编辑器后会还原成绿色.) 摘  要:DataGridView控件作为数据传输的中介,只 ...

  2. DataGridView控件

    DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...

  3. WinForm中的DataGridView控件显示数据字典方案2

    winform代码分析object数据库 做这部分功能的时候,上网搜索了很多资料,发现很少涉及到这方面的解决方案,找了相关的问题帖子,很多人都叫使用视图去处理,当然,用视图是可以解决这个问题,但是,这 ...

  4. 在DataGridView控件中加入ComboBox下拉列表框的实现

    在DataGridView控件中加入ComboBox下拉列表框的实现 转自:http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.htm ...

  5. Winform DataGridView控件添加行号

      有很多种方法,这里介绍三种: A: 控件的RowStateChanged事件中添加,RowStateChanged事件是在行的状态更改(例如,失去或获得输入焦点)时发生的事件: e.Row.Hea ...

  6. Winform 中DataGridView控件添加行标题

    有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> / ...

  7. C# DataGridView控件清空数据完美解决方法

    C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将 ...

  8. 实现winform DataGridView控件判断滚动条是否滚动到当前已加载的数据行底部

    判断 DataGridView控件滚动条是否滚动到当前已加载的数据行底部,其实方法很简单,就是为DataGridView控件添加Scroll事件,然后写入以下代码就可以了,应用范围:可实现分部加载数据 ...

  9. C#实现WinForm DataGridView控件支持叠加数据绑定

    我们都知道WinForm DataGridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定到相应的数据源即可,但需注意数据源必须支持IListSource类型,这里说的是支 ...

随机推荐

  1. 51Nod-1136 欧拉函数

    51Nod: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1136 1136 欧拉函数 基准时间限制:1 秒 空间限制: ...

  2. BZOJ 2120: 数颜色

    2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MBSubmit: 3623  Solved: 1396[Submit][Status][Discuss] ...

  3. [Machine Learning &amp; Algorithm] 随机森林(Random Forest)

    1 什么是随机森林? 作为新兴起的.高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来 ...

  4. 极其简单的搭建eclipse的android开发环境

    这篇博客是关于如何搭建eclipse的android开发环境, 与网上的其他博客不同,我的方法比他们简单的多,所 以推荐给大家. 搭建eclipse的android开发环境步骤: 1.配置JDK(Ja ...

  5. 主线程MainThread与渲染线程RenderThread

    在Android 5.0之前,Android应用程序的主线程同时也是一个Open GL线程.但是从Android 5.0之后,Android应用程序的Open GL线程就独立出来了,称为Render ...

  6. CSS鼠标响应事件经过、移动、点击示例介绍

    本文为大家介绍下CSS 鼠标响应事件:鼠标经过CSS.鼠标移动CSS.鼠标点击CSS以及示例,喜欢的朋友可以参考下   几种鼠标触发CSS事件. 说明: onMouseDown 按下鼠标时触发 onM ...

  7. 2016年10月27日--css样式表

    CSS样式表 样式表分类 1.内联样式表 和html联合显示,控制精确,但是可重用性差,冗余多. !doctype html> <html> <head> <met ...

  8. LevelDB(v1.3) 源码阅读之 Slice

    LevelDB(v1.3) 源码阅读系列使用 LevelDB v1.3 版本的代码,可以通过如下方式下载并切换到 v1.3 版本的代码: $ git clone https://github.com/ ...

  9. 轻量级应用开发之(01)第一个IOS程序

    一 IPhone轻量级开发 1. 开发环境 Mac 版本: OS X EICap 10.11.3 (15D21) XCode开发版本: Version 7.2.1 (7C1002) 2.简单分析 UI ...

  10. php面试题之三——PHP语言基础(基础部分)

    三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...