第二步:创建表示层 <br/> <br/> 具体步骤如下: <br/> <br/> 1. 新建一个Windows应用程序,命名为:“Windows Form For 表示层”。 <br/> <br/> 2. 在窗体上添加一个DataGrid,一个Button,Button1的text为“Load”,作用是:从业务层读取数据。 <br/> <br/> 3. 在解决方案窗体中添加Web 引用,将我们自己建立的Web Service for 业务层引入到当前项目中。 <br/> <br/> 4. 向Button1的Click事件添加如下代码: <br/> <br/> Dim Customer_Ds As New localhost.super_ds() <br/> <br/> Dim ser1 As New localhost.Service1() <br/> <br/> Customer_Ds.Merge(ser1.Get_Dataset) <br/> <br/> DataGrid1.DataSource = Customer_Ds <br/> <br/> 这里我们调用了Web Service的Get_DataSet函数,Update_DataSet方法的调用与此完全相同。 <br/> <br/> 表示层的完整代码如下: <br/> <br/> Imports Data_Access_表示层 <br/> <br/> Public Class Form1 <br/> <br/> Inherits System.Windows.Forms.Form <br/> <br/> #Region \" Windows Form Designer generated code \" <br/> <br/> Public Sub New() <br/> <br/> MyBase.New() <br/> <br/> \'This call is required by the Windows Form Designer. <br/> <br/> InitializeComponent() <br/> <br/> \'Add any initialization after the InitializeComponent() call <br/> <br/> End Sub <br/> <br/> \'Form overrides dispose to clean up the component list. <br/> <br/> Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) <br/> <br/> If disposing Then <br/> <br/> If Not (components Is Nothing) Then <br/> <br/> components.Dispose() <br/> <br/> End If <br/> <br/> End If <br/> <br/> MyBase.Dispose(disposing) <br/> <br/> End Sub <br/> <br/> Friend WithEvents Button1 As System.Windows.Forms.Button <br/> <br/> Friend WithEvents Button2 As System.Windows.Forms.Button <br/> <br/> Friend WithEvents Button3 As System.Windows.Forms.Button <br/> <br/> Friend WithEvents Client_DataSet As Data_Access_表示层.localhost.super_ds <br/> <br/> Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid <br/> <br/> \'Required by the Windows Form Designer <br/> <br/> Private components As System.ComponentModel.Container <br/> <br/> \'NOTE: The following procedure is required by the Windows Form Designer <br/> <br/> \'It can be modified using the Windows Form Designer. <br/> <br/> \'Do not modify it using the code editor. <br/> <br/> <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() <br/> <br/> Me.Button1 = New System.Windows.Forms.Button() <br/> <br/> Me.Button2 = New System.Windows.Forms.Button() <br/> <br/> Me.Button3 = New System.Windows.Forms.Button() <br/> <br/> Me.Client_DataSet = New Data_Access_表示层.localhost.super_ds() <br/> <br/> Me.DataGrid1 = New System.Windows.Forms.DataGrid() <br/> <br/> CType(Me.Client_DataSet, System.ComponentModel.ISupportInitialize).BeginInit() <br/> <br/> CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit() <br/> <br/> Me.SuspendLayout() <br/> <br/> \' <br/> <br/> \'Button1 <br/> <br/> \' <br/> <br/> Me.Button1.Location = New System.Drawing.Point(88, 360) <br/> <br/> Me.Button1.Name = \"Button1\" <br/> <br/> Me.Button1.TabIndex = 0 <br/> <br/> Me.Button1.Text = \"load\" <br/> <br/> \' <br/> <br/> \'Button2 <br/> <br/> \' <br/> <br/> Me.Button2.Location = New System.Drawing.Point(232, 360) <br/> <br/> Me.Button2.Name = \"Button2\" <br/> <br/> Me.Button2.TabIndex = 1 <br/> <br/> Me.Button2.Text = \"update\" <br/> <br/> \' <br/> <br/> \'Button3 <br/> <br/> \' <br/> <br/> Me.Button3.Location = New System.Drawing.Point(376, 360) <br/> <br/> Me.Button3.Name = \"Button3\" <br/> <br/> Me.Button3.TabIndex = 2 <br/> <br/> Me.Button3.Text = \"clear\" <br/> <br/> \' <br/> <br/> \'Client_DataSet <br/> <br/> \' <br/> <br/> Me.Client_DataSet.DataSetName = \"Client_DataSet\" <br/> <br/> Me.Client_DataSet.Locale = New System.Globalization.CultureInfo(\"zh-CN\") <br/> <br/> Me.Client_DataSet.Namespace = \"http://www.tempuri.org/CustomerDs.xsd\" <br/> <br/> \' <br/> <br/> \'DataGrid1 <br/> <br/> \' <br/> <br/> Me.DataGrid1.DataMember = \"\" <br/> <br/> Me.DataGrid1.Location = New System.Drawing.Point(40, 56) <br/> <br/> Me.DataGrid1.Name = \"DataGrid1\" <br/> <br/> Me.DataGrid1.Size = New System.Drawing.Size(480, 264) <br/> <br/> Me.DataGrid1.TabIndex = 3 <br/> <br/> \' <br/> <br/> \'Form1 <br/> <br/> \' <br/> <br/> Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14) <br/> <br/> Me.ClientSize = New System.Drawing.Size(568, 429) <br/> <br/> Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGrid1, Me.Button3, Me.Button2, Me.Button1}) <br/> <br/> Me.Name = \"Form1\" <br/> <br/> Me.Text = \"Form1\" <br/> <br/> CType(Me.Client_DataSet, System.ComponentModel.ISupportInitialize).EndInit() <br/> <br/> CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit() <br/> <br/> Me.ResumeLayout(False) <br/> <br/> End Sub <br/> <br/> #End Region <br/> <br/> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click <br/> <br/> Dim Customer_Ds As New localhost.super_ds() <br/> <br/> Dim ser1 As New localhost.Service1() <br/> <br/> Customer_Ds.Merge(ser1.Get_Dataset) <br/> <br/> DataGrid1.DataSource = Customer_Ds <br/> <br/> End Sub <br/> <br/> End Class <br/> <br/> 总结:可见,表示层窗体上完全没有数据库连接控件,它与数据库的连接任务是通过业务层来完成的,这样,程序的结构更加清晰,当然业务层的实现也可以用其他方法,比如:写一个自己的类来完成与数据库的数据传输。 |