vb是基于对象的,vb.net是面向对象的。VB6.0是解释性语言,需要VB虚拟机加以解释执行(就是那个很大的DLL)
Vb.net用的是.net框架(主要是针对新一代分布式网络应用的开发) 。VB6是独立的一个开发工具,vb.net则更象是一个可选语法,它和vc++.net和C#用的共同的runtime language,也就是说编译后它们就是一样的。
什么是 VB.NET? Microsoft推出全新的编程和操作系统Framework——.NET,支持多种语言利用公共.NET库开发应用程序,这些应用程序在.NET Framework上运行。使用Visual Basic在.NET Framework上编程,这就是VB.NET。
l 提供了所有.NET程序语言执行时的服务。
提供所有的.net程式的服务以及机制都一样。
可以执行语言的沟通及继承。
l 提供自动的记忆点管理。
自动管理程式执行时的记忆点。
自动执行资源的收集。
l 提供COM元件的互通能力
l 内建多执行者的执行能力
l 提供开发各种解决方案时所需要使用的对象,加速开发解决方案的速度,不需要从头做起.
l 所有的.NET语言皆使用同一组,开发小组可以选择不同的语言共同开发。
l 将各种不同解决方案的模型一致化。
首先是选择要开发的语言平台。
l 表单式设计(窗体)Windows Form ,Web Form
l 控制项对象:表单(窗体)、按钮、文字方向、下拉清单
属性设定:控制项位置、行为、内容等
事件:click、change……
方法:open 、closing……
l 面向对象程序设计
将应用程序中的所有的元件(控件)控制项看作是对象,以oop方式的设计(类别的继承等)
l 事件驱动方式程序设计
事件:click change ……
事件处理程序:(Event Handler) :处理特定的事件的处理程序。
.NET程序开发实际上就是物件导向程式开发(面向对象的程序开发)在.NET里面的所有的对象其行为就像是普通的对象一样。
Vb.net和vb行为不同。
Eg:Dim E as Employee
E =new Employee(“Charlie Lin)
Dim E as Employee =New Employee(“Charlie Lin”)
.net环境中开发人员不用自己摧毁物件(释放对象)
l .net 使用资源收集器(GC Garbage Collect )来摧毁物件
l GC会周期性的自动的执行,并收回没有被使用的物件。
Method
一般用构造函数初始化对象比较方便。
Eg dim E as Employee E=New Employee(Charlie lin)
Overload=多个名字相同的方法。
Eg:
Public Class Employee Public Name as String Public Pay Decimal Public Sub New (ByVal Name As String) Me.Name=Name End sub Public Sub New (ByVal Name AS String ,ByVal Pay As Decimal) Me.Name=Name Me.Pat=Pay End sub End Class
属性的操作
Dim E as Employee
E=New Employee(“Charlie Lin”,10000D)
属性的使用。
E.Balance=E.balance +2000D
属性的set和get方法。
Eg:
Public Class Employee Private m_Name As String Private m_Pay As Decimal Public Property Pay() As Decimal Get Return Me.m_Pay End Get Set (ByVal Value As Decimal) If Value>-0 Then Me.m_pay=value End if End set End class
System.Windows.Forms 命名空间
System.Windows.Forms命名空间中定义了Winforms应用程式所需要的类别。
所有的表单(forms)均集成自Form类。
所有者的动作。
事件中加入或是移除另一个事件处理。
Private Sub cmd1_Click(……) AddHandler txt.TextChanged End sub Private Sub Common_TextChanged(….) Globals.Changed=true End sub
Vb.net 的控件与vb6进行比较
控件的属性方法事件都基本相似。
ADO.NET架构
l Dataset
中断连接的核心元件。
能够独立各种资料(数据库)来源进行资料存取操作。
内含由一个或是多个datatable物件组成的集合。
l .NET FrameWork资料提供者
Connection 物件(对象)。
Command物件。
Datamand物件。
DataReader物件。
DataAdapter物件。
。net Framework 内附有四类。Net资料提供者。
SQl Server.NET Framework资料提供者。
OLE DB .NET Framework资料提供者。
ODBC.NET Framework 资料提供者
Oracle.net Framework资料提供者。
要使用。Net Framework 资料提供者要用Imports来引入命名空间(System.Data)
各种资料支持者所支持的版本是不同的。
1、 开放资料库(Connection 物件的open方法)
2、 进行资料库的操和读取。
操作:Command物件,DataReader物件,DataAdapter物件)
读取:DataSet物件
3、 关闭资料库的连接(Connection 中的close方法)
Connection物件(对象)使用一个字符串的连接数据库。
没有connection类而是各个资料库提供者有自己的连接类比。
例如:
Imports System.Data.SqlClient Imports System.Data Imports System.Object Imports System Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '建立一个SqlConnection对象 Dim myConnection As New SqlConnection '指定用来开放SQL Server数据库的连接字符串 myConnection.ConnectionString = _ "Persist Security Info=False;Integrated Security=SSPI;Database=NorthernLights;" & _ "User ID=sa ;Password=sa ;Server=(local);Connect Timeout=30" Try '开放连接 myConnection.Open() '用来处理数据库程序异常 Catch ex As Exception MessageBox.Show("无法连接到数据库") Finally '关闭数据库连接 myConnection.Close() MessageBox.Show("数据库连接成功!") End Try End Sub End Class
Command 物件。
用command对象是用来针对数据库中数据来源执行SQL陈述式或预存程序以便将数据返回至DataReader或DataSet中。
不同的数据库中数据提供者有他们自己的命令类别。
SqlCommand类别。
OleDbCommand类别。
OdbcCommand类别。
OracleCommand类别。
使用command命令来执行Transact—SQL语句。
SqlCommand.CommandText=”select * from Student “
SqlCommand.Connection=sqlConnection1
sqlCommand.CommandType=CommandType.Text
DataReader物件。
DataReader物件就是所谓的资料汲取器。可以呼叫Command物件的ExecuteReader方法来取回。当存取到datareader物件时,数据库连接保持开放的状态。
读取操作。
Dim sql, fn, ln, cnstr As String '定义连接数据库的字符串 cnstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\HAIFANG\Desktop\Database11.accdb" '连接数据库 Dim cn As OleDbConnection = New OleDb.OleDbConnection(cnstr) cn.Open() Dim dbReader As OleDb.OleDbDataReader '查询的sql语句 sql = "Select * from Customers Order by LastName Asc,FristName Asc;" Dim dbCmd As New OleDb.OleDbCommand(sql, cn) dbCmd.Connection = cn '执行SQL指令,回掉DataReader dbReader = dbCmd.ExecuteReader() ' 读取数据库内容 Do While dbReader.Read() '读取每一个值 fn = System.Convert.ToString(dbReader("FristName")) ln = System.Convert.ToString(dbReader("LastName")) Me.ListBox1.Items.Add(ln + "," + fn) Loop '关闭数据库 dbReader.Close() cn.Close() End Sub
DataAdapter物件。
就是所谓的资料适配器,担任DataSet物件资料来源的桥梁。
DataAdaper物件使用command对象。
DataSet对象,将数据快速的放到数据库中。
建立数据集。
DataSet(ByVal dataSetName As String)
Dim myDataSet As DataSet=New DataSet(“人事数据集”)
DataAdapter的Fill方法。
Fill方法会使用SelectCommand属性所指定的Select表达式从表总截取数据列,并将所提取的数据列存入DataSet内表中。
如果数据集中不存在对应的表,Fill方法会建立数据库的表,然后再将数据列填入其中。
如果对应的表已经存在,Fill方法会以目前所提取的资料列来重新整理数据库表的的数据列,以便保持一致。
Fill方法会视情况自动的开放和关闭连接。
嘿嘿,没想到这会是 2011年最后一篇博客,2011再见!拥抱我们的2012!