最新VB.NET数据库项目通用模块的创建及其应用.doc
-
资源ID:33839936
资源大小:940.50KB
全文页数:15页
- 资源格式: DOC
下载积分:15金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
最新VB.NET数据库项目通用模块的创建及其应用.doc
精品资料VB.NET数据库项目通用模块的创建及其应用.VB.NET数据库项目通用模块的创建及其应用作者:朱瑞芳来源:电脑知识与技术2016年第25期 摘要:运用VB.NET技术建立数据库项目通用模块,并且通过运用listView控件,说明数据通用模块的应用方法,阐述了类的继承和扩展的具体运用,为设计高效、稳定的数据库管理系统提供宝贵资源。 关键词:通用模块;添加;删除;编辑 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)25-0011-05 Abstract: Using the built module database project of VB.NET technology 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; add; delete; edit 1 引言 VB.NET继承类允许扩展类,可以创造一个带有一定功能的新类。如果有部分功能已经能由一个已经存在的类提供了,则可以扩展原来的那个类来构建一个新类。那么新建的这个类成为子类或者继承类,而原来的那个类称为父类或者基类。扩充类的过程称为扩展,关键字为inherit 用于描述扩展类的行为。在VB.NET中一个类只能有一个父类。 2 数据库通用模块代码及其说明 打开Visual Studio 2010,新建一个工程,名称假设为SalesManager,在项目下新建一个文件夹,命名为TYConfig.在该文件夹下,添加6个类。其中TYConnection为父类,TYCommand、TYDataReader、TYDataTable子类3个为子类或称继承类。如图1解决方案资源资源管理器所示。下面分别介绍主要代码(注:单引号“”后面的文字为简要说明,与代码同行的是说明同行的代码;单独行的是说明下一行的代码)。 2.1 数据库连接通用模块 父类TYConnection Imports System.Data.SqlClient 连接SQL Server Namespace TYConfig 命名空间名称为TYConfig Public Class TYConnection 声明类TYConnection 声明一个受保护变量存储连接数据库的信息 Protected ConnStr As String 声明用于数据库连接的保护成员 Protected conn As SqlConnection Protected Sub Open() 判断连接字符串是否为空 If ConnStr Is Nothing Or ConnStr = "" Then MessageBox.Show("请指定连接字符串!") Return End If 实例化Connection类 conn = New SqlConnection(ConnStr) conn.Open() 打开数据库 End Sub Protected Sub Close() conn.Close() 关闭连接 End Sub End Class End Namespace 在这“TYConnection”类中,最上面二句和最下面一句,表示命名空间的定义,在下面3个继承类中不再重复。 2.2 创建TYCommand 类 该类包括 Function过程,分别实现添加、删除、更新数据。 Imports System.Data.SqlClient 连接SQL Server Namespace TYConfig 命名空间名称为TYConfig Public Class TYCommand TYCommand类的声明 Inherits TYConnection 为继承TYConnection类的功能,重用这个类里的功能,避免代码重复 Public Sub New(ByVal str As String) 创建有一个参数为str的构造函数,指定连接信息字符串 ConnStr = str End Sub Public Function Insert(ByVal strSQL As Strin ) As Integer 添加数据的Function过程 Open() 连接数据库 创建 SqlCommand 实例 Dim cmd as SqlCommand=New SqlCommand(strSQL,comm) count 表示受影响的行数,初始化为0 Dim count As Integer=0 Count=cmd.ExecuteNonQuery() Close() 关闭数据库 End Fuction 删除数据的Function过程 ,有三个参数,分别对应数据库中的表名、需要删除的条件 Public Function Delete(ByVal table As String, ByVal row As String, ByVal value As String) As Integer Open() 连接数据库 创建SQL命令 Dim strSQL As String = "Delete From " + table + " Where " + row + "=" + value 创建 SqlCommand 实例 Dim cmd As SqlCommand =New SqlCommand(strSQL, conn) count 表示受影响的行数,初始化为0 Dim count As Integer = 0 count = cmd.ExecuteNonQuery() Close() 关闭数据库 Return count End Function 更新数据的Function过程 Public Function Update(ByVal table As _ String, ByVal strContent As String, _ ByVal row As String, ByVal value As String) As Integer Open() 连接数据库 Dim strSQL As String = "Update " + table + " Set " + strContent + " Where " + row + "=" + value Dim cmd As SqlCommand = New SqlCommand(strSQL, conn) Dim count As Integer = 0 count = cmd.ExecuteNonQuery() Close() 关闭数据库 Return count End Function End Class End Namespace 2.3 创建DataBinding 类 用于ListView控件与数据库绑定。如果与ComboBox、TextVox、ListBox等控件绑定,方法类似。这里以ListView控件为例。 Namespace TYConfig 命名空间名称为TYConfig Public 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 = "=", Optional ByVal value As String = "") 清空ListView lsv.Items.Clear() 设置SQL 语句,即读出表 Dim SQLString As String = "SELECT * FROM " & tableName 如果有查询条件,则将查询条件追加到SQL语句 If field "" Then SQLString += " Where " & field & op & value End If 创建DBDataTable对象 Dim dt As TYDataTable = New TYDataTable(connStr) 调用DBDataTable 的CreateDataTable函数,得到DataTable表 Dim table As DataTable = dt.CreateDataTable(SQLString, tableName) 在循环中遍历DataTable表,逐行逐列把表中的内容加入到ListView控件中 Dim UserRow As DataRow Dim LItem As ListViewItem For Each UserRow In table.Rows LItem = New ListViewItem(UserRow(0). ToString.Trim() Dim i As Integer For i = 1 To num - 1 LItem.SubItems.Add(UserRow(i). ToString().Trim() Next lsv.Items.Add(LItem) Next End Sub End Class 2.4创建TYDataReader类 Imports System.Data.SqlClient 连接SQL Server Namespace TYConfig 命名空间名称为TYConfig Public Class TYDataReader Inherits TYConnection 在构造函数中指定连接信息字符串 Public Sub New(ByVal str As String) ConnStr = str End Sub Public Function CreateDataReader( ByVal strSQL As String,ByVal table As String) As SqlDataReader 打开数据库连接 Open() 创建SqlCommand对象 Dim cmd As SqlCommand =New SqlCommand(strSQL, conn) ExecuteReader执行SQL语句并返回SqlDataReader Dim dr As SqlDataReader = cmd.ExecuteReader() 返回DataReader Return dr End Function End Class End Namespace 2.5创建TYDataTable类 Imports System.Data.SqlClient 连接SQL Server Namespace TYConfig 命名空间名称为TYConfig Public Class TYDataTable Inherits TYConnection 在构造函数中指定连接信息字符串 Public Sub New(ByVal str As String) ConnStr = str End Sub Public Function CreateDataTable( ByVal strSQL As String, ByVal table As String) As DataTable Open() 连接数据库 使用连接字符串和SqlConnecton创建 SqlDataAdapter的实例 Dim da As SqlDataAdapter = New SqlDataAdapter(strSQL, conn) Dim ds As New Data.DataSet() 创建DataSet对象 da.Fill(ds) 填充DataSet Close() 关闭数据库 Return ds.Tables(0) 返回DataTable End Function End Class End Namespace 3 数据库公用模块运用准备 有了以上5个通用模块,配合ListView控件,便可以方便设计一个简单的数据库管理系统,能实现对数据的添加、编辑、删除、刷新等基本操作。 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 数据库通用模块的运用说明 在TYConfig文件夹下再创建ConncetionString类,用于连接数据库 Namespace TYConfig Public Class ConnectionString Public ConnectionInfo As String = "数据库连接字符串" End Class End Namespace 注:数据库连接字符串:VS2010数据菜单添加数据源(若已添加,则按显示数据源)数据源配置向导,选“数据库”“下一步”,选“数据集”计算机名称.数据库名称.dbo 假设计算机属性名称为PCName,数据库名称为sales,则在文本框里自动出现: PCName.sales.dbo 也可以做其他选择。此时,将下面“连接字符串”左侧的“+”号点开,就看到字符串为: Data Source=PCName;Initial Catalog=sales; User ID=sa 下一步,“是否将连接保存为”: salesConnectionString 下一步,“正在检索数据库信息”,选择表、视图、存储过程、函数等复选框。DataSet名称为:salesDataSet 此时便实现VS与SQL数据库的连接。 回到操作界面,给每个命令按钮添加代码 在Form Class类里,最前面需要输入Imports SalesManager.TYConfig(不需要TYConfig的命名空间语句) 4.1“添加”按钮的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) If cmd.Insert(SQLstr) > 0 Then MsgBox("信息添加成功!", MsgBoxStyle.DefaultButton1, "添加信息") Else MsgBox("添加信息失败!") End If TextBox1.Text ="": TextBox2.Text="": TextBox3.Text = "": TextBox4.Text = "" : TextBox5.Text = "" : TextBox6.Text = "" DataBinding.FillListView(ListView1, "txl", 6, New ConnectionString().ConnectionInfo) End Sub 4.2 “删除”按钮click事件代码 If ListView1.SelectedItems.Count = 0 Then MsgBox("请选择需要删除的行") Exit Sub End If Dim cmd As TYCommand = New TYCommand( New ConnectionString().ConnectionInfo) 利用TYCommand中的Delect Function过程,判定删除是否成功 If cmd.Delete("txl", "tID”, ListView1.SelectedItems(0).Text) > 0 Then MsgBox("删除数据成功!", MsgBoxStyle.OkOnly, "删除") Else MsgBox("删除失败!") 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='" & TextBox2.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 Then MsgBox("修改信息成功!", MsgBoxStyle.OkOnly, "修改信息") Else MsgBox("修改信息未被接受,请检查你所做的修改是否正确。", MsgBoxStyle.Critical, "修改信息") End If DataBinding.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 = "":TextBox3.Text = "": TextBox4.Text = "":TextBox5.Text = "":TextBox6.Text = "": If ListView1.SelectedItems.Count = 0 Then Exit Sub 当鼠标选中ListView1控件中某一行时,自动将该行中的每一个数据,赋值给各文本框 TextBox1.Text =ListView1._ SelectedItems(0). SubItems(0).Text TextBox2.Text = ListView1. SelectedItems(0).SubItems(1).Text TextBox3.Text = ListView1.SelectedItems(0).SubItems(2).Text TextBox4.Text = ListView1. SelectedItems(0).SubItems(3).Text TextBox4.Text = ListView1. SelectedItems(0).SubItems(4).Text TextBox6.Text = ListView1.SelectedItems(0).SubItems(5).Text 4.6 补充说明 该程序调试时,如果出现如图4所示的异常情况,则说明需要添加引用,最简单的解决方法就是 导入“System.Windows.Forms”,即在该类代码的第一行,添加:Imports System.Windows.Forms,即可解决。 另外,可以在操作界面上加上菜单或右键快捷菜单以及多个表单页面,并且通过总界面作为父窗口,将所有界面贯穿起来,那么无论多么复杂的数据库,都能轻松构建。 5 结束语 由于VB.net技术可以创建数据库通用性模块,这些模块适用于任何一个关系数据库系统的设计,当理解掌握并熟练应用后就能提高数据库设计效率,也使软件设计变得相当简单,使非计算机专业的普通电脑爱好者也能涉足其中,感受无穷乐趣。 参考文献: 1 石志国,刘冀伟.张维存.VB.NET数据库编程M.北京:清华大学出版社,2009. 2 青岛乐合信息技术有限公司.青岛海尔软件有限公司. VB.NET程序设计M.北京:电子工业出版社,2011. 3 余青松,江红.VB.NET 程序设计M.北京:清华大学出版社,2011. 4 http:/