VB.NET访问SQLServer数据库

    用vb6.0编写收费系统,用的是ADODB(Active Data Objects Data Base)+Recordset,而在vb.net中用的是SqldataAdapter、SqldataReadr、Dataset和Datatable,刚刚写第二遍收费系统时,对这几个概念模糊,也能反映出当时的浮躁和对新知识接受能力的不足。下面先了解一下常用方法、属性。

SqlDataAdapter

    如果只需要执行SQL语句,就没必要用到DataAdapter, 直接用SqlCommand的Execute系列方法就可以了。sqlDataadapter的作用是实现Dataset和DataBase之间的桥梁。

    首先介绍一下常用的构造、方法和属性(需要先引用System.Data.SqlClient)

常用的方法

    Fill

    Fill方法的作用是将数据库中的数据填充到dataset。例如:

        Dim ds As New DataSet    '定义一个dataset
        Dim da As New SqlDataAdapter  '定义一个sqldataadapter
        '填充dataset
        da.Fill(ds, "User_info")

    Update

    Update方法的作用是将dataset里面的数据更新到数据库。例如:

        Dim ds As New DataSet    '定义一个dataset
        Dim da As New SqlDataAdapter  '定义一个sqldataadapter
        '更新dataset
        da.Update(ds, "User_info")

DataSet

    可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet 由一组 DataTable 对象组成。

        Dim ds As New DataSet '定义一个dataset
        ds.Tables.Add(dt) '向dataset中添加datatabele

DataTable

    是一个临时保存数据的网格虚拟表,可以用来存储数据。例如:在窗体上拖放一个DataGridView控件,在button1写写代码:

        Dim dt As New DataTable() '定义一个datatabele
        dt.Columns.Add("卡号") '添加字段“卡号”
        dt.Columns.Add("姓名") '添加字段“姓名”
        dt.Columns.Add("学号") '添加字段“学号”
        dt.Columns.Add("老师") '添加字段“老师”
        dt.Rows.Add("10001", "jain", "0905024", "mi")  '向datatabele中写数据行
    需要注意的是,datatabele需要先添加列才能添加行,我的理解是相当于在数据库表中先添加字段,才能输入数据。 效果如下:

        

SqldataReader

    sqldatareader 是一种获取数据库数据的一种方法,获取的数据只读。并且它需要与sqlCommand连用,最常见的使用方法:

        Dim ConnString As String = _
            "Data Source=192.168.24.158;Initial Catalog=CR_Charge_SYS;Persist Security Info=True;User ID=sa;Password=123456"
        Dim sqltxt As String = "select * from User_info" '定义sql语句
        Dim sqlconn As New SqlConnection(ConnString) '定义连接
        Dim sqlcmd As New SqlCommand(sqltxt, sqlconn) '定义sqlCommand
        Dim userReader As SqlDataReader '定义sqldatareader
        Try
            sqlconn.Open() '打开连接
            userReader = sqlcmd.ExecuteReader '生成sqldatareader
            userReader.Read()  '读取数据
            MsgBox(userReader.Item(3)) '显示读取的第四个数据
            userReader.Close()  '关闭阅读
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            sqlcmd.Dispose() ' 释放sqlCommand
        End Try

    这样就能达到最简单的数据读取操作,需要注意的是使用sqldatareader,需要先打开数据库连接,才能生成sqldatareader,并且需要.read()后才能获取数据。

    下面以获取整个数据库中某个表的数据为例,将sqldatareader、sqldataadapter、datatabele和dataset同时使用。代码:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim ConnString As String = _
            "Data Source=192.168.24.158;Initial Catalog=CR_Charge_SYS;Persist Security Info=True;User ID=sa;Password=123456"
        Dim sqltxt As String = "select * from User_info" '定义sql语句
        Dim sqlconn As New SqlConnection(ConnString) '定义连接
        Dim sqlcmd As New SqlCommand(sqltxt, sqlconn) '定义sqlCommand
        Dim da As New SqlDataAdapter(sqlcmd) '定义sqldataadapter并于sqlcommand连接
        Dim ds As New DataSet
        Dim userReader As SqlDataReader '定义sqldatareader
        Try
            sqlconn.Open() '打开连接
            userReader = sqlcmd.ExecuteReader '生成sqldatareader
            userReader.Read()  '读取数据
            MsgBox(userReader.Item(3)) '显示读取的第四个数据
            userReader.Close()  '关闭阅读
            da.Fill(ds, "Userinfo")
            DataGridView1.DataSource = ds.Tables("Userinfo")
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            sqlcmd.Dispose() ' 释放sqlCommand
        End Try
    End Sub

    显示结果:

        


(1)系统管理模块包括切换系统,系统设置,退出系统这几个功能。切换系统能弹出登录界面方便另外一位用户使用系统;系统设置包括用户密码修改、主界面网页设定、系统风格选择,用户在登入系统后可进入用户密码修改模块更改自己的密码;主界面网页设定的作用是更改每个角色登陆到系统看到的主菜单界面的网页的url,可以设定不同角色的用户进入系统后看到的网页内容是不同的。系统风格设置可以改变系统的风格,选择用户喜欢的风格。退出系统能关闭所有使用的资源,退出整个系统。 (2)人事管理模块包括员工信息管理和系统用户管理。其中,员工信息管理能对普通员工的信息执行增删改查等操作,系统用户管理能对系统用户的信息进行增删改查。 (3)菜单管理模块能够对菜单的编号、名称、价格、分类等执行增删改查操作。 (4)报表统计模块能对员工的学历信息以图表的形式统计并展现;通过大量的消费数据得出顾客喜欢的菜品以及喜欢的菜品组合,并用饼图进行反应,方便管理人员作出正确的决策; 库存信息统计能够很直观的反应当前库存的状况;历史账单统计能够让用户一览流水数据。除此之外,报表还可以以word、excel、pdf等形式导出。 (5)库存管理模块能够实现对物料的编号、名称、单价、数量、分类等的增删改查管理。 (6)订餐及收款模块包含预定、退订、点菜、结账等功能。席位共有20个,未预定时桌位的颜色是绿色的,点击预定后桌位变为黄色,并弹出顾客信息登记界面,包括客户的编号、姓氏、电话、已预订的桌位号以及预定时间,且已经预定的桌位不能再次订餐。点击退订能对已经定的桌位进行退订,退订后桌位颜色变为绿色,对于已经就餐的桌位不能退订。已预订或未预定的桌位均能点菜,点菜时弹出点菜界面,包括已点的菜品及每份菜的数量,点菜之后餐桌颜色变为红色。结账模块用来对已经就餐的餐桌结账,结账界面的信息包括桌号,消费清单,应付款。输入实收金额,自动计算找零金额。并显示当前的操作员及操作时间,点击完成将以上信息写入数据库,打印按钮的操作状态变为可操作,点击打印按钮能够打印顾客回执
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值