《最新VB.NET数据库项目通用模块的创建及其应用.doc》由会员分享,可在线阅读,更多相关《最新VB.NET数据库项目通用模块的创建及其应用.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品资料VB.NET数据库项目通用模块的创建及其应用.VB.NET数据库项目通用模块的创建及其应用作者:朱瑞芳来源:电脑知识与技术2016年第25期摘要:运用VB.NET技术建立数据库项目通用模块,并且通过运用listView控件,说明数据通用模块的应用方法,阐述了类的继承和扩展的具体运用,为设计高效、稳定的数据库管理系统提供宝贵资源。关键词:通用模块;添加;删除;编辑中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)25-0011-05Abstract: Using the built module database project of VB.NET tech
2、nology and listView control,that demonstrate the application of method of general module data,Also described the specific use of inheritance and expansion of class. These Provide valuable resources for the database management system design of high efficiency and stable.Key words: universal module; a
3、dd; delete; edit1 引言VB.NET继承类允许扩展类,可以创造一个带有一定功能的新类。如果有部分功能已经能由一个已经存在的类提供了,则可以扩展原来的那个类来构建一个新类。那么新建的这个类成为子类或者继承类,而原来的那个类称为父类或者基类。扩充类的过程称为扩展,关键字为inherit 用于描述扩展类的行为。在VB.NET中一个类只能有一个父类。2 数据库通用模块代码及其说明打开Visual Studio 2010,新建一个工程,名称假设为SalesManager,在项目下新建一个文件夹,命名为TYConfig.在该文件夹下,添加6个类。其中TYConnection为父类,TYCo
4、mmand、TYDataReader、TYDataTable子类3个为子类或称继承类。如图1解决方案资源资源管理器所示。下面分别介绍主要代码(注:单引号“”后面的文字为简要说明,与代码同行的是说明同行的代码;单独行的是说明下一行的代码)。2.1 数据库连接通用模块父类TYConnectionImports System.Data.SqlClient 连接SQL ServerNamespace TYConfig 命名空间名称为TYConfigPublic Class TYConnection 声明类TYConnection声明一个受保护变量存储连接数据库的信息Protected ConnStr
5、As String声明用于数据库连接的保护成员Protected conn As SqlConnectionProtected Sub Open()判断连接字符串是否为空If ConnStr Is Nothing Or ConnStr = ThenMessageBox.Show(请指定连接字符串!)ReturnEnd If实例化Connection类conn = New SqlConnection(ConnStr)conn.Open() 打开数据库End SubProtected Sub Close()conn.Close() 关闭连接End SubEnd ClassEnd Namespace
6、在这“TYConnection”类中,最上面二句和最下面一句,表示命名空间的定义,在下面3个继承类中不再重复。2.2 创建TYCommand 类该类包括 Function过程,分别实现添加、删除、更新数据。Imports System.Data.SqlClient 连接SQL ServerNamespace TYConfig 命名空间名称为TYConfigPublic Class TYCommand TYCommand类的声明Inherits TYConnection 为继承TYConnection类的功能,重用这个类里的功能,避免代码重复Public Sub New(ByVal str As
7、 String) 创建有一个参数为str的构造函数,指定连接信息字符串ConnStr = strEnd SubPublic Function Insert(ByVal strSQL As Strin ) As Integer 添加数据的Function过程Open() 连接数据库创建 SqlCommand 实例Dim cmd as SqlCommand=New SqlCommand(strSQL,comm)count 表示受影响的行数,初始化为0Dim count As Integer=0Count=cmd.ExecuteNonQuery()Close() 关闭数据库End Fuction删除
8、数据的Function过程 ,有三个参数,分别对应数据库中的表名、需要删除的条件Public Function Delete(ByVal table As String, ByVal row As String, ByVal value As String) As IntegerOpen() 连接数据库创建SQL命令Dim strSQL As String = Delete From + table + Where + row + = + value创建 SqlCommand 实例Dim cmd As SqlCommand =New SqlCommand(strSQL, conn)count
9、表示受影响的行数,初始化为0Dim count As Integer = 0count = cmd.ExecuteNonQuery()Close() 关闭数据库Return countEnd Function更新数据的Function过程Public Function Update(ByVal table As _String, ByVal strContent As String, _ByVal row As String, ByVal value As String) As IntegerOpen() 连接数据库Dim strSQL As String = Update + table +
10、 Set + strContent + Where + row + = + valueDim cmd As SqlCommand = New SqlCommand(strSQL, conn)Dim count As Integer = 0count = cmd.ExecuteNonQuery()Close() 关闭数据库Return countEnd FunctionEnd ClassEnd Namespace2.3 创建DataBinding 类用于ListView控件与数据库绑定。如果与ComboBox、TextVox、ListBox等控件绑定,方法类似。这里以ListView控件为例。N
11、amespace TYConfig 命名空间名称为TYConfigPublic Class DataBinding根据指定表和指定查询条件,填充ListView.分别有控件类型、表名、列数、查询条件Public Shared Sub FillListView(ByRef lsv As ListView, ByVal tableName As String, ByVal num As Integer, _ ByVal connStr As String, Optional ByVal field As String = ,Optional ByVal op As String = =, Opti
12、onal ByVal value As String = )清空ListViewlsv.Items.Clear()设置SQL 语句,即读出表Dim SQLString As String = SELECT * FROM & tableName如果有查询条件,则将查询条件追加到SQL语句If field ThenSQLString += Where & field & op & valueEnd If创建DBDataTable对象Dim dt As TYDataTable = New TYDataTable(connStr)调用DBDataTable 的CreateDataTable函数,得到D
13、ataTable表Dim table As DataTable = dt.CreateDataTable(SQLString, tableName)在循环中遍历DataTable表,逐行逐列把表中的内容加入到ListView控件中Dim UserRow As DataRowDim LItem As ListViewItemFor Each UserRow In table.RowsLItem = New ListViewItem(UserRow(0). ToString.Trim()Dim i As IntegerFor i = 1 To num - 1LItem.SubItems.Add(U
14、serRow(i). ToString().Trim()Nextlsv.Items.Add(LItem)NextEnd SubEnd Class2.4创建TYDataReader类Imports System.Data.SqlClient 连接SQL ServerNamespace TYConfig 命名空间名称为TYConfigPublic Class TYDataReaderInherits TYConnection在构造函数中指定连接信息字符串Public Sub New(ByVal str As String)ConnStr = strEnd SubPublic Function Cr
15、eateDataReader( ByVal strSQL As String,ByVal table As String) As SqlDataReader打开数据库连接Open()创建SqlCommand对象Dim cmd As SqlCommand =New SqlCommand(strSQL, conn)ExecuteReader执行SQL语句并返回SqlDataReaderDim dr As SqlDataReader = cmd.ExecuteReader()返回DataReaderReturn drEnd FunctionEnd ClassEnd Namespace2.5创建TYD
16、ataTable类Imports System.Data.SqlClient 连接SQL ServerNamespace TYConfig 命名空间名称为TYConfigPublic Class TYDataTableInherits TYConnection在构造函数中指定连接信息字符串Public Sub New(ByVal str As String)ConnStr = strEnd SubPublic Function CreateDataTable( ByVal strSQL As String, ByVal table As String) As DataTableOpen() 连
17、接数据库使用连接字符串和SqlConnecton创建 SqlDataAdapter的实例Dim da As SqlDataAdapter = New SqlDataAdapter(strSQL, conn)Dim ds As New Data.DataSet() 创建DataSet对象da.Fill(ds) 填充DataSetClose() 关闭数据库Return ds.Tables(0) 返回DataTableEnd FunctionEnd ClassEnd Namespace3 数据库公用模块运用准备有了以上5个通用模块,配合ListView控件,便可以方便设计一个简单的数据库管理系统,能
18、实现对数据的添加、编辑、删除、刷新等基本操作。3.1数据库准备本文以SQL Server2008为例,假设在C盘根目录下有一个销售统计的数据库,文件名为Sales.mdf。其中一个通讯录表名为txl。数据和结构如图2所示:(必须注意:如果表中有自动增量必须取消,否则添加或修改数据时会出错。)3.2 操作界面设计6个文本框和标签框,4个命令按钮,1个ListView控件(ListView必须设置好如下属性:View为Details;GridLines为True;Column的ColumnHeader集合编辑器里要加上六列,并将text改为真实列名;滚动条设置为可用)。界面如图3所示:4 数据库通
19、用模块的运用说明在TYConfig文件夹下再创建ConncetionString类,用于连接数据库Namespace TYConfigPublic Class ConnectionStringPublic ConnectionInfo As String = 数据库连接字符串End ClassEnd Namespace注:数据库连接字符串:VS2010数据菜单添加数据源(若已添加,则按显示数据源)数据源配置向导,选“数据库”“下一步”,选“数据集”计算机名称.数据库名称.dbo假设计算机属性名称为PCName,数据库名称为sales,则在文本框里自动出现: PCName.sales.dbo也可
20、以做其他选择。此时,将下面“连接字符串”左侧的“+”号点开,就看到字符串为:Data Source=PCName;Initial Catalog=sales; User ID=sa下一步,“是否将连接保存为”: salesConnectionString下一步,“正在检索数据库信息”,选择表、视图、存储过程、函数等复选框。DataSet名称为:salesDataSet此时便实现VS与SQL数据库的连接。回到操作界面,给每个命令按钮添加代码在Form Class类里,最前面需要输入Imports SalesManager.TYConfig(不需要TYConfig的命名空间语句)4.1“添加”按钮
21、的click事件代码注意数据类型,第一列为int,所以不用单引号利用SQL插放语句,将各文本框里的数据,定义到txl表Dim SQLstr As String = Insert into txl values( & TextBox1.Text & , & TextBox2.Text & , & TextBox3.Text & , & TextBox4.Text & , & TextBox5.Text & , & TextBox6.Text & )Dim cmd As TYCommand = New TYCommand (New ConnectionString().ConnectionInfo
22、)If cmd.Insert(SQLstr) 0 ThenMsgBox(信息添加成功!, MsgBoxStyle.DefaultButton1, 添加信息)ElseMsgBox(添加信息失败!)End IfTextBox1.Text =: TextBox2.Text=: TextBox3.Text = : TextBox4.Text = : TextBox5.Text = : TextBox6.Text = DataBinding.FillListView(ListView1, txl, 6, New ConnectionString().ConnectionInfo)End Sub4.2 “
23、删除”按钮click事件代码If ListView1.SelectedItems.Count = 0 ThenMsgBox(请选择需要删除的行)Exit SubEnd IfDim cmd As TYCommand = New TYCommand( New ConnectionString().ConnectionInfo)利用TYCommand中的Delect Function过程,判定删除是否成功If cmd.Delete(txl, tID”, ListView1.SelectedItems(0).Text) 0 ThenMsgBox(删除数据成功!, MsgBoxStyle.OkOnly,
24、 删除)ElseMsgBox(删除失败!)End If删除符合条件的行号后重新将表中数据绑定到ListView1控件中DataBinding.FillListView(ListView1, txl, 6, New ConnectionString().ConnectionInfo)4.3 “更新”按钮click事件代码Dim cmd As TYCommand = New TYCommand( New ConnectionString().ConnectionInfo)Dim strContent As String = tID= & TextBox1.Text & , _tName= & Te
25、xtBox2.Text & , tEmail= & TextBox3.Text & , tMobile= & TextBox4.Text & , _tHomePhone= & TextBox5.Text & , tMemo= & TextBox6.Text & 利用TYCommand中的Update Function过程,判断更新是否成功If cmd.Update(txl, strContent, tid, & TextBox1.Text & ) 0 ThenMsgBox(修改信息成功!, MsgBoxStyle.OkOnly, 修改信息)ElseMsgBox(修改信息未被接受,请检查你所做的
26、修改是否正确。, MsgBoxStyle.Critical, 修改信息)End IfDataBinding.FillListView(ListView1, txl, 6, New ConnectionString().ConnectionInfo)4.4“显示ListVew1数据”按钮的click事件代码DataBinding.FillListView(ListView1, txl,6, New ConnectionString().ConnectionInfo)4.5 ListView1_Click事件代码先清空文本框数据TextBox1.Text = :TextBox2.Text = :T
27、extBox3.Text = :TextBox4.Text = :TextBox5.Text = :TextBox6.Text = :If ListView1.SelectedItems.Count = 0 Then Exit Sub当鼠标选中ListView1控件中某一行时,自动将该行中的每一个数据,赋值给各文本框TextBox1.Text =ListView1._SelectedItems(0). SubItems(0).TextTextBox2.Text = ListView1. SelectedItems(0).SubItems(1).TextTextBox3.Text = ListV
28、iew1.SelectedItems(0).SubItems(2).TextTextBox4.Text = ListView1. SelectedItems(0).SubItems(3).TextTextBox4.Text = ListView1. SelectedItems(0).SubItems(4).TextTextBox6.Text = ListView1.SelectedItems(0).SubItems(5).Text4.6 补充说明该程序调试时,如果出现如图4所示的异常情况,则说明需要添加引用,最简单的解决方法就是 导入“System.Windows.Forms”,即在该类代码的
29、第一行,添加:Imports System.Windows.Forms,即可解决。另外,可以在操作界面上加上菜单或右键快捷菜单以及多个表单页面,并且通过总界面作为父窗口,将所有界面贯穿起来,那么无论多么复杂的数据库,都能轻松构建。5 结束语由于VB.net技术可以创建数据库通用性模块,这些模块适用于任何一个关系数据库系统的设计,当理解掌握并熟练应用后就能提高数据库设计效率,也使软件设计变得相当简单,使非计算机专业的普通电脑爱好者也能涉足其中,感受无穷乐趣。参考文献:1 石志国,刘冀伟.张维存.VB.NET数据库编程M.北京:清华大学出版社,2009.2 青岛乐合信息技术有限公司.青岛海尔软件有限公司. VB.NET程序设计M.北京:电子工业出版社,2011.3 余青松,江红.VB.NET 程序设计M.北京:清华大学出版社,2011.4 http:/