第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;

Slides:



Advertisements
Similar presentations
ADO.NET – 连接数据库. 2 课程地位 STB SQL Server XML PSPM ASP.NET Oracle OOAD Computer Base HTML&JavaScript OOP\Java C C SQL Base JSP/Servlet EJB/WebService C#
Advertisements

計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
教育技术装备统计系统 使用培训 教育部基础教育司 教育部教育管理信息中心.
主讲:史治平 地址:四川电大计算机教研室 电话:
計算機程式及實習 期末報告 題目:商店結帳系統
第7章利用ADO.NET 进行数据访问.
ASP.NET 網頁製作教本 – 從基本語法學起
ADO .NET 簡介.
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
Access数据库程序设计 总复习.
第7章 数据库基础知识 SQL常用命令使用方法 (1) 数据记录筛选: sql="select * from 数据表
客户端用Net-Library和SQL SERVER连接
課程名稱:程式設計 授課老師:________
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
CH10.
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
程式簡介、VB、物件導向 國立北門高中 林明璋.
BLANK overview.
第七章、RFID WinCE系統開發 本章針對RFID系統中的行動裝置架構開發方式進行介紹,這裡所指的行動裝置指的是使用Windows Mobile作業系統的個人數位助理PDA或是手機而言,本章內之範例可以在此平台上運作無虞。主要說明使用VS.NET 2008平台開發與RFID結合的Windows.
Visual C# 2010 程式設計經典 第15章 ADO .NET與資料工具.
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式.
課程名稱:資料庫系統 授課老師:李春雄 博士
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
Chapter 12 T-SQL 語法與 ASP.NET.
第15章 数据报表与数据图表.
程式語言 -Visual Basic 變數、常數與資料型態.
ADO.NET.
課程名稱:資料庫系統 授課老師:李春雄 博士
主 讲 教 师:陆有军 Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军
課程名稱:資料庫系統 授課老師:李春雄 博士
第6章 ADO.NET数据访问接口 6.
上述代码规范了 INSERT 语句的编写规范,其中:
第2章 ADO.NET 2.0概述.
第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除
資料庫程式設計 VB資料庫設計簡介 週次:2 建國科技大學 資管系 饒瑞佶.
VB如何存取資料庫 ? 資料庫 資料儲存 資料庫引擎 資料庫引擎 Jet 讀取、寫入與修改 資料控制項 資料庫存取物件(ADO) 使用者介面.
第7章 ADO.NET操作SQL Server数据库
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
数据保护技术(完整性、并发性、安全性和数据库恢复)
讲课人:王璞 浙江工商职业技术学院.
第9章 事务.
5.5.1 存储过程的优点 ① 事务处理 ② 速度和性能 ③ 过程控制 ④ 安全性 ⑤ 减少网络流量和通信 ⑥ 模块化
5.1.1 使用 ExecuteReader()操作数据库
操作数据库 C#程序设计课程组.
移动电子商务 第十二章 Windows Mobile应用案例 倚动软件工厂实验室.
使用ADO.NET访问数据 数据库连接 C#程序设计课程组.
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
C# 程序设计教程 同济大学计算机系基础学科组
Connection对象 访问数据库的第一步是建立连接,只有建立连接,才可能实现 在数据库和应用程序之间移动数据。 ADO提供了连接对象:
Visual Basic.NET 程序设计语言课程内容
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
数据库技术与应用 (开学篇) 同济大学.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
菜单、状态栏和工具栏 菜单 状态栏 工具栏 编写代码 创建用户界面 Debug and Deploy 使用 Visual
第五讲 酒店客房管理系统(一) 教育部“十二五”职业教育国家规划教材
VB语言程序设计教程.
第18章 個人入口網站的建立 18-1入口網站的基礎 18-2 建立網站的搜尋引擎 18-3 網頁組件的個人化功能
第十讲 学生成绩管理系统(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
第 10 章 ADO.NET與XML.
第 11 章 功能表列與工具列的設計 & 第 10 章 檔案.
Controls.
ASP.NET实用教程 清华大学出版社 第9章数据库应用 教学目标 教学重点 教学过程 2019年5月3日.
DEV342 Visual Basic 2005: 应用程序框架 和高级语言特性
HOOK和数据库访问 主讲人:孙鑫
数据库应用技术 天津电大 翟迎建.
Presentation transcript:

第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接; 数据库应用系统开发中的程序设计.

8.1 数据库访问技术基本概念 1. 通用数据存取(Universal Data Access, UDA) : 8.1 数据库访问技术基本概念 1. 通用数据存取(Universal Data Access, UDA) : 为了实现“可从任意类型计算机上的任意应用程序中访问任意类型的数据源”,微软提出了UDA概念。而OLE DB和ODBC技术就是这一概念的实现。

8.1 数据库访问技术基本概念 UDA的关键是数据访问的透明性。即不管数据在什么地方,数据的提供者可以是各种项目,包括Oracle、 SQL Server数据库、EXCEL、E-Mail、文件系统、消息库等等。UDA通过提供简洁的数据访问层解决了异构数据访问的问题。使程序员可以用统一的编程接口,访问不同的数据源。不会因为数据源的不同,而产生程序编写上的不同。

8.1 数据库访问技术基本概念 数据 对象接口 RDO ADO ODBC 应用程序 编程接口 其他数据源 关系数据库 OLE DB

8.1 数据库访问技术基本概念 ADO(ActiveX Data Object):是在OLE DB的上层,它进一步简化了数据访问编程。使得应用程序访问数据库变得更加方便简单。 ADO.NET采用ADO体系结构模型,并扩展了功能。 本章重点介绍ADO.NET的对象模型功能以及如何利用这些对象建立VB.NET与数据库之间的数据访问功能。

8.1 数据库访问技术基本概念 2. ADO.NET体系结构 ADO.NET的主要技术特点 (1)支持断开连接模型。 8.1 数据库访问技术基本概念 2. ADO.NET体系结构 ADO.NET的主要技术特点 (1)支持断开连接模型。 断开连接模型是指一旦获得所需的数据,就断开对数据源的连接,使用离线数据集继续在本机上处理数据。优点是大大减少传输切断数据的开销,保证应用程序不会太长时间持有数据库锁或持久连续占用数据库服务器资源,从而生成有高伸缩性的应用程序。

8.1 数据库访问技术基本概念 (2)采用XML作为数据交换的格式。XML是跨平台存储和传输数据的工业标准格式,用XML格式发送信息,可以让程序员很容易将共享数据应用程序中的数据处理和用户接口组件分离到不同服务器中,这对于支持多用户的系统来说,可以较大程度地提高系统的性能和可维护性。

8.1 数据库访问技术基本概念 ADO.NET组件 两个核心组件:Dataset和.NET数据提供程序(Data Provider) 8.1 数据库访问技术基本概念 ADO.NET组件 两个核心组件:Dataset和.NET数据提供程序(Data Provider) Dataset对象用于保存数据, .NET数据提供程序通过执行SQL命令或存储过程来存取数据。

8.1 数据库访问技术基本概念 .NET Framework数据提供程序 DataAdapter SelectCommand 8.1 数据库访问技术基本概念 .NET Framework数据提供程序 DataAdapter SelectCommand InsertCommand DeleteCommand UpdateCommand DataReader Connection 事务 Command 参数 DataSet Fill DB

DataRelationCollection ConstraintCollection DataColumnCollection 8.1 数据库访问技术基本概念 DataTableCollection DataRelationCollection DataSet XML DataRowCollection ConstraintCollection DataColumnCollection 数据表 数据集:由表集和关系集构成。 表集:由若干表构成。 表:由 行集、列集和约束集构成。

8.1 数据库访问技术基本概念 说明: Dataset是ADO.NET的断开式结构的核心组件。它的设计目的:实现独立于任何数据源的数据访问。 8.1 数据库访问技术基本概念 说明: Dataset是ADO.NET的断开式结构的核心组件。它的设计目的:实现独立于任何数据源的数据访问。 Dataset把数据以XML形式存放在客户端的内存(不是服务器)。Dataset是与数据源断开的,不知道数据提供者,无论数据源是什么,它都会提供一致的关系编程模型。

8.1 数据库访问技术基本概念 (2) .NET Framework数据提供程序:用于实现对底层数据源的访问。组件包括:Connection、Command、DataAdapter和DataReader对象。 ( Connection对象提供与数据源的连接。 Command对象执行数据库命令。 DataReader 从数据源中提供高性能的数据流。 DataAdapter 对象执行SQL命令,将数据采集来放入Dataset对象中。 )

8.1 数据库访问技术基本概念 .NET Framework提供了四个数据提供程序:它们分别为不同数据源提供数据访问操作支持。如下表。 8.1 数据库访问技术基本概念 在使用DataSet之前, 都是属于DataProvider的执行范围, 也就是每家数据库厂商各自的存取方式,所以用户必须选择合适的DataProvider对象。 .NET Framework提供了四个数据提供程序:它们分别为不同数据源提供数据访问操作支持。如下表。

8.1 数据库访问技术基本概念 Microsoft SQL .NET 数据提供程序 Microsoft OLE DB .NET 8.1 数据库访问技术基本概念 表8.1 ADO.NET的四类数据提供程序 Microsoft SQL .NET 数据提供程序 它使.NET应用程序可以直接访问Microsoft SQL Server 数据库 Microsoft OLE DB .NET 它使.NET应用程序可以使用它们本机OLE DB提供程序访问数据库(可以是不同的数据源) Microsoft ODBC .NET 它使.NET应用程序可以通过使用ODBC访问数据库 Microsoft Oracle .NET 使.NET应用程序可以访问Oracle数据库

8.2 数据库访问控件对象 访问数据库主要涉及以下控件对象: SqlConnection //数据库连接对象 8.2 数据库访问控件对象 访问数据库主要涉及以下控件对象: SqlConnection //数据库连接对象 SqlCommand //执行Sql命令对象 SqlDataAdapter //数据适配器对象,用于采集数据并将数据送到客户端数据集DataSet中 DataSet //数据集对象,一个数据集中可存放多个表中内容

8.2 数据库访问控件对象 Datatable //数据表对象,查询结果即可送入数据集Dataset,也可送入表Datatable。 8.2 数据库访问控件对象 Datatable //数据表对象,查询结果即可送入数据集Dataset,也可送入表Datatable。 BindingMangerBase // “数据绑定管理器”对象 SqlDataReader //数据只读对象

SqlCommand执行查询或更新数据库命令 8.2 数据库访问控件对象 数据访问操作过程: SqlConnection连接数据库 SqlCommand执行查询或更新数据库命令 更新数据库 查询结果送入SqlDataReader 对只读对象中数据进行操作 SqlCommand1. ExcuteNonQuery() SqlDataReader1= SqlCommand1.Excutereader()

8.2. 数据库访问控件对象 或 SqlConnection连接数据库 SqldataAdapter执行查询或更新数据库命令 更新数据库 查询结果送入DataSet或DataTable Adapter.SelectCommand. ExcuteNonQuery( ) adapter.Fill( 数据集或数据表 ) 将DataSet或dataTable中数据绑定到 界面的TextBox或DataGrid等控件中 更新数据库

8.3 数据更新程序的设计 例1 以下面程序为主讲解更新程序的设计。 运行界面

8.3 数据更新程序的设计 设计界面

8.3 数据更新程序的设计 1. 首先在界面上放入以下对象并设置相应属性: 8.3 数据更新程序的设计 1. 首先在界面上放入以下对象并设置相应属性: (1) Imagelist图像列表对象Imagelist1。设置属性Image, 在其中放入若干图片。事先收集所用图片并存入该项目的Bin目录下。 (2) ToolBar工具栏对象ToolBar1。设置Buttons属性,为工具栏添加各按钮,如图所示。 (3) Button按钮对象Button1,属性Text=“查询” (4) 若干文本框TextBox对象, 设置Font属性. (5) 若干标签Label对象 和2个GroupBox对象. 设置Text属性和Font属性.

8.3 数据更新程序的设计 2. 在工具箱的数据卡中拿一个数据适配器 SqldataAdapter1到界面中,可视化配置适配器。 8.3 数据更新程序的设计 2. 在工具箱的数据卡中拿一个数据适配器 SqldataAdapter1到界面中,可视化配置适配器。 SQL语句为:Select * From 学生 注:也可以拖资源管理器中的“学生”表到界面上,那么“数据库适配器”、适配器用的“数据库连接对象”自动生成。(电脑演示)

8.3 数据更新程序的设计 3. 选中SqlDataAdapter1,在属性窗口中出现“生成数据集等操作选项” ,如图所示。 8.3 数据更新程序的设计 3. 选中SqlDataAdapter1,在属性窗口中出现“生成数据集等操作选项” ,如图所示。 单击“生成数据集…”选项,生成Dataset11数据集。 4.设置各Textbox对象数据绑定属性DataBings.Text. 例如:TextBox2的属性DataBings.Text为DataSet11.学生.学号

8.3 数据更新程序的设计 5. 引用语句和绑定管理器的定义: Imports System.Data.SqlClient 8.3 数据更新程序的设计 5. 引用语句和绑定管理器的定义: ‘访问数据库使用的引用语句 Imports System.Data.SqlClient Public Class student1 Inherits System.Windows.Forms.Form ‘定义绑定管理器对象 Dim Mybind As BindingManagerBase …

8.3 数据更新程序的设计 6. Form1窗体对象的Load事件代码: Private Sub student1_Load(。。。)。。。 8.3 数据更新程序的设计 6. Form1窗体对象的Load事件代码: Private Sub student1_Load(。。。)。。。 DataSet11.Clear() Try ‘执行适配器中查询并将结果填写到数据集中 Me.SqlDataAdapter1.Fill(Me.DataSet11, "学生") Catch ex As Exception MessageBox.Show(ex.Message) End Try ‘设置绑定管理器管理的表 Mybind = Me.BindingContext(Me.DataSet11, "学生") End Sub

8.3 数据更新程序的设计 7. 工具栏ToolBar1的Click事件代码如下: 8.3 数据更新程序的设计 7. 工具栏ToolBar1的Click事件代码如下: Private Sub ToolBar1_ButtonClick(…, ByVal e As …) … Select Case e.Button.Text Case "首记录" '返回首记录 Mybind.Position = 0 Case "上记录“ '返回上记录 Mybind.Position -= 1 Case "下记录" '返回下记录 Mybind.Position += 1 Case "尾记录" '返回尾记录 Mybind.Position = Mybind.Count - 1 Case "新增" Mybind.AddNew()

8.3 数据更新程序的设计 Case "修改" Case "删除" ‘ 删除当前记录 8.3 数据更新程序的设计 Case "修改" Case "删除" ‘ 删除当前记录 Mybind.RemoveAt(Mybind.Position ) Case "保存" Try Mybind.EndCurrentEdit() ‘结束编辑状态 '如果数据集有变化,则保存 If Me.DataSet11.HasChanges = True Then SqlDataAdapter1.Update(Me.DataSet11.学生) End If Catch ex As Exception

8.3 数据更新程序的设计 MsgBox(ex.Message) Exit Sub End Try Case "取消" 8.3 数据更新程序的设计 MsgBox(ex.Message) Exit Sub End Try Case "取消" Mybind.CancelCurrentEdit() ‘重新刷新一次数据集 SqlDataAdapter1.Fill(Me.DataSet11, "学生") Case "关闭" Me.Close() End Select End Sub

8.3 数据更新程序的设计 8. “查询”按钮Button1的Click事件代码: 8.3 数据更新程序的设计 8. “查询”按钮Button1的Click事件代码: Private Sub Button1_Click(。。。)。。。 Dim sqlstr As String sqlstr = "select * from 学生 where 学号 like ‘" &_ TextBox1.Text & "'" Me.SqlDataAdapter1.SelectCommand. _ CommandText = sqlstr DataSet11.Clear() Me.SqlDataAdapter1.Fill(Me.DataSet11, "学生") End Sub

8.4 查询程序的设计 例2:设计按学号或姓名查询的程序。界面如下。

8.4 查询程序的设计 步骤:在界面上放以下对象并设置相应 属性. 1. 一个GroupBox对象,3个label对象,3个文本框。 2. 一个button1对象,属性text为“查询”。 3. 一个DataGrid1对象, 可设置Font字体. 4. 引用语句和公共变量定义如下。 注意放置的位置。

8.4 查询程序的设计 Imports System.Data.SqlClient ‘引用语句 Public Class Form1 Inherits System.Windows.Forms.Form ‘定义数据库连接字符串 Dim cnnstr As String = "integrated security=SSPI; data source=MICROSOF-3739C7; initial catalog=教学数据库" ‘创建数据库连接对象 Dim cnn As New SqlConnection( cnnstr ) Dim dt As New DataSet ‘ 定义一个数据集 '定义一个数据适配配对象 Dim Adapter As SqlDataAdapter

8.4 查询程序的设计 5. “查询”按钮的click事件代码: Private Sub Button1_Click (。。。) 。。。 Dim sqlstr As String ‘定义存放sql语句的字符串 sqlstr = " select * From 学生 Where 学号 like '“ & _ snotxt.Text & “%'" & " and 姓名 like '" & _ nametxt.Text & “%'" ‘sql语句 '创建adapter实例,并指定要执行的sql语句文本 和使用的连接 Adapter = New SqlDataAdapter(sqlstr, cnn)

8.4 查询程序的设计 dt.Clear() '清空数据集Dt Try '根据查询条件填写数据集Dt Adapter.Fill(Me.dt, "学生") Catch ex As Exception MessageBox.Show(Ex.Message) Exit Sub End Try ’设置DataGrid1的数据源 DataGrid1.DataSource = dt.Tables("学生")

8.4 查询程序的设计 '求人数 Dim Cmd as new SqlCommand sqlstr = " select count(*) From 学生 Where 学号 like '“ & _ snotxt.Text & “%'" & " and 姓名 like '" & _ nametxt.Text & “%'” ‘sql语句 cmd.CommandText = sqlstr Cmd.Connection=cnn cnn.Open() Textbox1.text = cmd.ExecuteScalar 'ExecuteScalar返回单个值 cnn.Close End Sub

8.5 调用存储过程的查询程序 例3:通过调用存储过程来实现如下所示的查询程序。 图7-6

8.5 调用存储过程的查询程序 方法: 1. 打开SQL Server查询分析器。为“教学数据库”创建一个Student_Sno存储过程。 Create procedure Student_sno @sno char(6) , @sname Varchar(10) as select * from 学生 where 学号 like @sno and 姓名 like @sname

8.5 调用存储过程的查询程序 图7-7

8.5 调用存储过程的查询程序 2. 设计程序界面。 布局如图7-8所示,2个标签Label,2个文本框TextBox,1个按钮Button,1个表格DataGrid。 图7-8

8.5 调用存储过程的查询程序 3. 各控件主要属性设置。 对象名 属性名 取值 Label1 Text 学号 Label2 姓名 8.5 调用存储过程的查询程序 3. 各控件主要属性设置。 对象名 属性名 取值 Label1 Text 学号 Label2 姓名 Button1 查询 DataGrid1 信息浏览 Form1 Name Student_query1

8.5 调用存储过程的查询程序 4. 代码设计: Imports System.Data.SqlClient ‘引用语句 Public Class student_query2 Inherits System.Windows.Forms.Form ‘公共变量定义 Dim cnnstr As String = "integrated security=SSPI; data source=MICROSOF-3739C7; initial catalog=教学数据库" Dim cnn As New SqlConnection(cnnstr) Dim adapter As SqlDataAdapter Dim table1 As New DataTable

8.5 调用存储过程的查询程序 ‘查询按钮的Click事件代码 Private Sub Button1_Click( 。。。) 。。。 'Dim sqlstr As String table1.Clear() '清空dtable1 '设置适配器命令文本和连接 adapter = New SqlDataAdapter("student_sno", cnn) ‘设置适配器命令文本类型为存储过程 adapter.SelectCommand.CommandType = _ CommandType.StoredProcedure

8.5 调用存储过程的查询程序 '为适配器命令定义参数 Dim para_sno As SqlParameter = adapter.SelectCommand.Parameters.Add _ ("@sno", SqlDbType.Char, 6) '学号参数 Dim para_sname As SqlParameter = ("@sname", SqlDbType.VarChar, 10) '姓名参数 '将界面值送入参数 para_sno.Value = Me.snotxt.Text para_sname.Value = Me.nametxt.Text

8.5 调用存储过程的查询程序 Try '根据查询条件重新填写table1 adapter.Fill(table1) Catch ex As Exception MessageBox.Show(ex.Message) Exit Sub End Try ‘设置表格数据源为表Table1 DataGrid1.DataSource = table1 End Sub End Class

8.6 照片浏览程序设计 例4:浏览学生照片。

8.6 照片浏览程序设计 1. 设计程序界面。 布局如图上页图所示,2个标签Label,1个文本框TextBox,1个按钮Button,1个图像框PictureBox 2. 属性设置 (略) 3.代码设计

8.6 照片浏览程序设计 Imports System.Data.SqlClient Imports System.IO Public Class append_phto Inherits System.Windows.Forms.Form ‘定义本类中使用的变量和对象 Dim cnnstr As String = "integrated security=SSPI;data source=MICROSOF-3739C7; initial catalog=教学数据库" Dim sqlstr As String ‘用于装sql语句的字符串变量 Dim cnn As New SqlConnection(cnnstr)

8.6 照片浏览程序设计 ‘定义一个SqlCommand对象 Dim cmd As SqlCommand ‘定义一个数据适配器对象 Dim adapter As SqlDataAdapter ‘定义一个数据表 Dim table1 As New DataTable

8.6 照片浏览程序设计 Private Sub Button1_Click( …)… ‘显示照片 sqlstr = "select * from 学生 where 学号 like '" & _ TextBox1.Text.Trim & "'" adapter = New SqlDataAdapter(sqlstr, cnn) table1.Clear() adapter.Fill(table1) ‘将数据填入数据表Table1 If table1.Rows.Count = 0 Then MessageBox.Show("没有这个学生!") PictureBox1.Image = Nothing '清空图像框 exit Sub End If

8.6 照片浏览程序设计 Dim b() As Byte Try '读照片字段中的数据到数组 b = table1.Rows(0)("照片") Catch ex As SystemException '若不能显示,清除图形框 Me.PictureBox1.Image = Nothing MessageBox.Show("无照片!") Exit Sub End Try '传送数组B中内容到MemoryStream对象S Dim S As New System.IO.MemoryStream(b)

8.6 照片浏览程序设计 Try '显示照片 Me.PictureBox1.Image = Image.FromStream(S) Catch ex As SystemException '若不能显示,清除图形框 Me.PictureBox1.Image = Nothing End Try End Sub End Class

8.7 登录程序设计 例5 系统登录程序。界面如下。

8.7 登录程序设计 程序代码 Imports System.Data.SqlClient Public Class Form1 Inherits System.Windows.Forms.Form Dim adapter As SqlDataAdapter Dim dtable As New DataTable Private Sub Button2_Click( ……)…… '取消按钮 Me.Close() End Sub

8.7 登录程序设计 Private Sub Button1_Click( ….. ) ….. '确定按钮 Dim sqlstr As String If TextBox1.Text <> 0 and TextBox2.Text <> 0 Then sqlstr = "select 密码 from 操作员where 用户名 like '" _ & TextBox1.Text & "' and 密码 like '" & _ TextBox2.Text & "'" Me.adapter = New SqlDataAdapter(sqlstr, _ SqlConnection1) Me.adapter.Fill(dtable) If dtable.Rows.Count = 0 Then MessageBox.Show("密码错误", "信息提示") Exit Sub End If

8.7 登录程序设计 MessageBox.Show("欢迎使用系统") Dim f2 As New Form2 Me.Hide() f2.Show() End If End Sub End Class

谢谢! 联系我们: 同济大学计算机系计算机基础教研室 Http://jsjjc.tongji.edu.cn