VB.NET 教程_04_高级教程

 

VB.Net - 正则表达式

 

正则表达式是可以与输入文本匹配的模式。 .Net框架提供了允许这种匹配的正则表达式引擎。 模式由一个或多个字符文字,运算符或构造组成。

 

定义正则表达式的构造

有各种类别的字符,运算符和构造,允许您定义正则表达式。 单击以下链接以查找这些结构。

  • 字符转义
  • 字符类
  • 分组构造
  • 量词
  • 反向引用结构
  • 交替结构
  • 替换
  • 杂项结构

 

 

正则表达式类

正则表达式类用于表示一个正则表达式。

正则表达式类有以下常用方法:

SN方法和说明
1

Public Function IsMatch (input As String) As Boolean
公共函数IsMatch(输入作为字符串)作为布尔

表示在正则表达式构造函数中指定的正则表达式是否发现在指定的输入字符串匹配。

2

Public Function IsMatch (input As String, startat As Integer ) As Boolean

公共函数IsMatch(输入作为字符串,startat作为整数)作为布尔

指示在Regex构造函数中指定的正则表达式是否在指定的输入字符串中找到匹配项,从字符串中指定的起始位置开始。

3

Public Shared Function IsMatch (input As String, pattern As String ) As Boolean

公共共享函数IsMatch(输入作为字符串,图案作为字符串)作为布尔

指示指定的正则表达式是否在指定的输入字符串中找到匹配项。

4

Public Function Matches (input As String) As MatchCollection

公共函数匹配(输入作为字符串)作为MatchCollection

搜索指定的输入字符串以查找正则表达式的所有出现。

5

Public Function Replace (input As String, replacement As String) As String

公共函数替换(输入作为字符串,更换作为字符串)作为字符串

在指定的输入字符串中,使用指定的替换字符串替换与正则表达式模式匹配的所有字符串。

6

Public Function Split (input As String) As String()

公共函数(输入作为字符串)作为字符串()

将输入字符串插入到由正则表达式构造函数中指定一个正则表达式模式定义的位置的子字符串数组。

有关方法和属性的完整列表,请参阅Microsoft文档。

示例1

以下示例匹配以“S”开头的单词:

Imports System.Text.RegularExpressions
Module regexProg
   Sub showMatch(ByVal text As String, ByVal expr As String)
      Console.WriteLine("The Expression: " + expr)
      Dim mc As MatchCollection = Regex.Matches(text, expr)
      Dim m As Match
      For Each m In mc
          Console.WriteLine(m)
      Next m
   End Sub
   Sub Main()
      Dim str As String = "A Thousand Splendid Suns"
      Console.WriteLine("Matching words that start with 'S': ")
      showMatch(str, "SS*")
      Console.ReadKey()
   End Sub
End Module

 

当上述代码被编译和执行时,它产生了以下结果:

Matching words that start with 'S':
The Expression: SS*
Splendid
Suns

 

例2

以下示例匹配以“m”开头并以“e”结尾的单词:

Imports System.Text.RegularExpressions
Module regexProg
   Sub showMatch(ByVal text As String, ByVal expr As String)
      Console.WriteLine("The Expression: " + expr)
      Dim mc As MatchCollection = Regex.Matches(text, expr)
      Dim m As Match
      For Each m In mc
          Console.WriteLine(m)
      Next m
   End Sub
   Sub Main()
      Dim str As String = "make a maze and manage to measure it"
      Console.WriteLine("Matching words that start with 'm' and ends with 'e': ")
      showMatch(str, "mS*e")
      Console.ReadKey()
   End Sub
End Module

 

当上述代码被编译和执行时,它产生了以下结果:

Matching words start with 'm' and ends with 'e':
The Expression: mS*e
make
maze
manage
measure

 

例3

此示例替换了额外的空白空间:

Imports System.Text.RegularExpressions
Module regexProg
   Sub Main()
      Dim input As String = "Hello    World   "
      Dim pattern As String = "s+"
      Dim replacement As String = " "
      Dim rgx As Regex = New Regex(pattern)
      Dim result As String = rgx.Replace(input, replacement)
      Console.WriteLine("Original String: {0}", input)
      Console.WriteLine("Replacement String: {0}", result)
      Console.ReadKey()
   End Sub
End Module

 

当上述代码被编译和执行时,它产生了以下结果:

Original String: Hello   World   
Replacement String: Hello World   

 

 

VB.Net - 数据库访问

 

 

应用程序与数据库通信,首先,检索存储在那里的数据,并以用户友好的方式呈现它,其次,通过插入,修改和删除数据来更新数据库。

Microsoft ActiveX Data Objects.Net(ADO.Net)是一个模型,.Net框架的一部分,由.Net应用程序用于检索,访问和更新数据。

 

 

ADO.Net对象模型

ADO.Net对象模型只不过是通过各种组件的结构化流程。 对象模型可以被图形描述为:

 

ADO.Net对象

 

通过数据提供者检索驻留在数据存储或数据库中的数据。 数据提供者的各种组件检索应用程序的数据并更新数据。

 

应用程序通过数据集或数据读取器访问数据。

 

  • Datasets 数据集:数据集将数据存储在断开连接的缓存中,应用程序从中检索数据。

  • Data readers 数据读取:数据读取器以只读和仅转发模式向应用程序提供数据。

数据提供程序

 

数据提供程序用于连接到数据库、 执行命令和检索数据,将其存储在一个数据集,阅读检索到的数据和更新数据库。

 

在 ADO.Net 数据提供程序包括以下四个对象︰

 

SN对象和说明
1

Connection

This component is used to set up a connection with a data source.

该组件被用来建立与数据源的连接。

2

Command

A command is a SQL statement or a stored procedure used to retrieve, insert, delete or modify data in a data source.

命令是用于检索,插入,删除或修改数据源中的数据的SQL语句或存储过程。

3

DataReader

Data reader is used to retrieve data from a data source in a read-only and forward-only mode.

数据读取器用于以只读和仅转发模式从数据源检索数据。

4

DataAdapter

This is integral to the working of ADO.Net since data is transferred to and from a database through a data adapter. It retrieves data from a database into a dataset and updates the database. When changes are made to the dataset, the changes in the database are actually done by the data adapter.

这是ADO.Net的工作的组成部分,因为数据通过数据适配器传输到数据库和从数据库传输。 它将数据从数据库检索到数据集并更新数据库。 当对数据集进行更改时,数据库中的更改实际上由数据适配器完成。

ADO.Net中包含以下不同类型的数据提供程序

  • SQL Server的.Net Framework数据提供者 - 提供对Microsoft SQL Server的访问。

  • OLE DB的.Net Framework数据提供者 - 提供对使用OLE DB公开的数据源的访问。

  • ODBC的.Net Framework数据提供程序 - 提供对ODBC公开的数据源的访问。

  • Oracle的.Net Framework数据提供程序 - 提供对Oracle数据源的访问。

  • EntityClient提供程序 - 允许通过实体数据模型(EDM)应用程序访问数据。

 

数据集

 

DataSet是数据的内存表示。 它是从数据库检索的断开连接的高速缓存的记录集。 当与数据库建立连接时,数据适配器创建数据集并在其中存储数据。 在检索数据并将其存储在数据集中之后,将关闭与数据库的连接。 这被称为“断开连接的架构”。 数据集用作包含表,行和列的虚拟数据库。
 

下图显示了数据集对象模型:

 

 

VB.Net数据类

 

DataSet类存在于System.Data命名空间中。 下表描述了DataSet的所有组件:

SN组件及说明
1

DataTableCollection

It contains all the tables retrieved from the data source.

它包含了从数据源中检索的所有表。

2

DataRelationCollection

It contains relationships and the links between tables in a data set.

它包含数据集中的表之间的关系和链接。

3

ExtendedProperties

It contains additional information, like the SQL statement for retrieving data, time of retrieval, etc.

它包含的其他信息,例如用于检索数据的SQL语句,检索的时间等

4

DataTable

It represents a table in the DataTableCollection of a dataset. It consists of the DataRow and DataColumn objects. The DataTable objects are case-sensitive.

它表示数据集的DataTableCollection中的表。它由DataRow和DataColumn对象组成。 DataTable对象区分大小写。

5

DataRelation

It represents a relationship in the DataRelationshipCollection of the dataset. It is used to relate two DataTable objects to each other through the DataColumn objects.

它表示数据集的DataRelationshipCollection中的关系。它用于通过DataColumn对象将两个DataTable对象相互关联。

6

DataRowCollection

It contains all the rows in a DataTable.

它包含DataTable中的所有行。

7

DataView

It represents a fixed customized view of a DataTable for sorting, filtering, searching, editing and navigation.

它表示用于排序,过滤,搜索,编辑和导航的DataTable的固定自定义视图。

8

PrimaryKey

It represents the column that uniquely identifies a row in a DataTable.

它表示唯一标识DataTable中某一行的列。

9

DataRow

It represents a row in the DataTable. The DataRow object and its properties and methods are used to retrieve, evaluate, insert, delete, and update values in the DataTable. The NewRow method is used to create a new row and the Add method adds a row to the table.

它表示DataTable中的一行。 DataRow对象及其属性和方法用于检索,评估,插入,删除和更新DataTable中的值。 NewRow方法用于创建一个新行,Add方法向表中添加一行。

10

DataColumnCollection

It represents all the columns in a DataTable.

它表示DataTable中的所有列。

11

DataColumn

It consists of the number of columns that comprise a DataTable.

它由组成DataTable的列数组成。

 

连接到数据库

.Net框架提供两种类型的Connection类:

  • SqlConnection -设计用于连接到Microsoft SQL Server。

  • OleDbConnection -设计用于连接到各种数据库,如Microsoft Access和Oracle。

示例1

 

我们有一个表存储在名为testDB的数据库中的名为Customers的Microsoft SQL Server中。 有关在SQL Server中创建数据库和数据库表的信息,请参考“SQL Server”教程。
 

让我们连接到此数据库。 执行以下步骤:

 

 

  • 选择工具 - >连接到数据库

    VB.Net数据库连接实例

  • 在“添加连接”对话框中选择服务器名称和数据库名称。

    VB.Net数据库连接

  • 单击测试连接按钮以检查连接是否成功。

    连接成功

  • 在表单上添加一个DataGridView。

    VB.Net的DataGridView

  • 单击选择数据源组合框。

  • 单击添加项目数据源链接。

    添加项目数据源链接

  • 这将打开“数据源配置向导”。

  • 选择“数据库”作为数据源类型

    数据源

  • 选择的DataSet作为数据库模型。

    数据库模型

  • 选择已设置的连接。

    VB.Net数据库连接

  • 保存连接字符串。

    保存连接字符串
  • 在我们的示例中选择数据库对象Customers表,然后单击完成按钮。

    VB.Net数据库连接
  • 选择“预览数据”链接以查看“结果”网格中的数据:

    数据预览

当使用Microsoft Visual Studio工具栏上的“开始”按钮运行应用程序时,将显示以下窗口:

在数据网格视图VB.net数据

示例2

在这个例子中,让我们使用代码访问DataGridView控件中的数据。 执行以下步骤:

  • 在窗体中添加一个DataGridView控件和一个按钮。

  • 将按钮控件的文本更改为“填充”。

  • 双击按钮控件,为按钮的Click事件添加所需的代码,如下所示:

Imports System.Data.SqlClient
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) _
   Handles MyBase.Load
        'TODO: This line of code loads data into the 'TestDBDataSet.CUSTOMERS' table.   You can move, or remove it, as needed.
      Me.CUSTOMERSTableAdapter.Fill(Me.TestDBDataSet.CUSTOMERS)
      ' Set the caption bar text of the form.   
      Me.Text = "tutorialspoint.com"
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim connection As SqlConnection = New sqlconnection()
      connection.ConnectionString = "Data Source=KABIR-DESKTOP; _
          Initial Catalog=testDB;Integrated Security=True"
      connection.Open()
      Dim adp As SqlDataAdapter = New SqlDataAdapter _
      ("select * from Customers", connection)
      Dim ds As DataSet = New DataSet()
      adp.Fill(ds)
      DataGridView1.DataSource = ds.Tables(0)
   End Sub
End Class

 

当使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码时,将显示以下窗口:

 

数据库连接

 

单击“填充”按钮可显示数据网格视图控件上的表:

 

数据库连接

 

创建表,列和行

 



我们已经讨论过,像DataTable,DataColumn和DataRow这样的DataSet组件允许我们分别创建表,列和行。

下面的例子演示了这个概念:

 

 

示例3

到目前为止,我们已经使用我们的计算机中已经存在的表和数据库。 在本示例中,我们将创建一个表,向其中添加列,行和数据,并使用DataGridView对象显示表。

 

执行以下步骤:

  • 在窗体中添加一个DataGridView控件和一个按钮。

  • 将按钮控件的文本更改为“填充”。

  • 在代码编辑器中添加以下代码。

Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' Set the caption bar text of the form.   
      Me.Text = "tutorialspont.com"
   End Sub
   Private Function CreateDataSet() As DataSet
      'creating a DataSet object for tables
      Dim dataset As DataSet = New DataSet()
      ' creating the student table
      Dim Students As DataTable = CreateStudentTable()
      dataset.Tables.Add(Students)
      Return dataset
   End Function
   Private Function CreateStudentTable() As DataTable
      Dim Students As DataTable
      Students = New DataTable("Student")
      ' adding columns
      AddNewColumn(Students, "System.Int32", "StudentID")
      AddNewColumn(Students, "System.String", "StudentName")
      AddNewColumn(Students, "System.String", "StudentCity")
      ' adding rows
      AddNewRow(Students, 1, "Zara Ali", "Kolkata")
      AddNewRow(Students, 2, "Shreya Sharma", "Delhi")
      AddNewRow(Students, 3, "Rini Mukherjee", "Hyderabad")
      AddNewRow(Students, 4, "Sunil Dubey", "Bikaner")
      AddNewRow(Students, 5, "Rajat Mishra", "Patna")
      Return Students
   End Function
   Private Sub AddNewColumn(ByRef table As DataTable, _ 
   ByVal columnType As String, ByVal columnName As String)
      Dim column As DataColumn = _ 
       table.Columns.Add(columnName, Type.GetType(columnType))
   End Sub

   'adding data into the table
   Private Sub AddNewRow(ByRef table As DataTable, ByRef id As Integer,_
   ByRef name As String, ByRef city As String)
      Dim newrow As DataRow = table.NewRow()
      newrow("StudentID") = id
      newrow("StudentName") = name
      newrow("StudentCity") = city
      table.Rows.Add(newrow)
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim ds As New DataSet
      ds = CreateDataSet()
      DataGridView1.DataSource = ds.Tables("Student")
   End Sub
End Class

 

当使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码时,将显示以下窗口:

 

例

 

单击“填充”按钮可显示数据网格视图控件上的表:

 

例


 

 

 

VB.Net - Excel工作表

 

VB.Net提供对Microsoft Excel 2010的COM对象模型和应用程序之间的互操作性的支持。

要在应用程序中使用此互操作性,您需要在Windows窗体应用程序中导入命名空间Microsoft.Office.Interop.Excel。

 

从VB.Net创建一个Excel应用程序

让我们从Microsoft Visual Studio中的以下步骤开始创建窗体表单应用程序:文件 - >新建项目 - > Windows窗体应用程序

 

最后,选择确定,Microsoft Visual Studio创建您的项目并显示以下Form1。

 

在窗体中插入Button控件Button1。

 

向项目中添加对Microsoft Excel对象库的引用。 进行以下操作:

  • 从项目菜单中选择添加引用。

    添加引用

  • 在COM选项卡上,找到Microsoft Excel对象库,然后单击选择。

    COM选项卡

  • 点击OK。

 

双击代码窗口并填充Button1的Click事件,如下所示。

'  Add the following code snippet on top of Form1.vb
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim appXL As Excel.Application
      Dim wbXl As Excel.Workbook
      Dim shXL As Excel.Worksheet
      Dim raXL As Excel.Range
      ' Start Excel and get Application object.
      appXL = CreateObject("Excel.Application")
      appXL.Visible = True
      ' Add a new workbook.
      wbXl = appXL.Workbooks.Add
      shXL = wbXl.ActiveSheet
      ' Add table headers going cell by cell.
      shXL.Cells(1, 1).Value = "First Name"
      shXL.Cells(1, 2).Value = "Last Name"
      shXL.Cells(1, 3).Value = "Full Name"
      shXL.Cells(1, 4).Value = "Specialization"
      ' Format A1:D1 as bold, vertical alignment = center.
      With shXL.Range("A1", "D1")
          .Font.Bold = True
          .VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
      End With
      ' Create an array to set multiple values at once.
      Dim students(5, 2) As String
      students(0, 0) = "Zara"
      students(0, 1) = "Ali"
      students(1, 0) = "Nuha"
      students(1, 1) = "Ali"
      students(2, 0) = "Arilia"
      students(2, 1) = "RamKumar"
      students(3, 0) = "Rita"
      students(3, 1) = "Jones"
      students(4, 0) = "Umme"
      students(4, 1) = "Ayman"
      ' Fill A2:B6 with an array of values (First and Last Names).
      shXL.Range("A2", "B6").Value = students
       ' Fill C2:C6 with a relative formula (=A2 & " " & B2).
      raXL = shXL.Range("C2", "C6")
      raXL.Formula = "=A2 & "" "" & B2"
       ' Fill D2:D6 values.
      With shXL
          .Cells(2, 4).Value = "Biology"
          .Cells(3, 4).Value = "Mathmematics"
          .Cells(4, 4).Value = "Physics"
          .Cells(5, 4).Value = "Mathmematics"
          .Cells(6, 4).Value = "Arabic"
      End With
      ' AutoFit columns A:D.
      raXL = shXL.Range("A1", "D1")
      raXL.EntireColumn.AutoFit()
       ' Make sure Excel is visible and give the user control
      ' of Excel's lifetime.
      appXL.Visible = True
      appXL.UserControl = True
       ' Release object references.
      raXL = Nothing
      shXL = Nothing
      wbXl = Nothing
      appXL.Quit()
      appXL = Nothing
      Exit Sub
Err_Handler:
      MsgBox(Err.Description, vbCritical, "Error: " & Err.Number)
   End Sub
End Class

 

当使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码时,将显示以下窗口:

 

VB.Net Excel的实例

 

单击按钮将显示以下excel表。 将要求您保存工作簿。

 

VB.Net的Excel表格结果


 

 

VB.Net - 发送邮件

 

 

VB.Net允许从您的应用程序发送电子邮件。 System.Net.Mail命名空间包含用于向简单邮件传输协议(SMTP)服务器发送电子邮件以进行传递的类。

 

下表列出了一些常用的类:

SN描述
1Attachment表示对电子邮件的附件。
2AttachmentCollection存储要作为电子邮件的一部分发送的附件。
3MailAddress表示电子邮件发件人或收件人的地址。
4MailAddressCollection存储与电子邮件相关联的电子邮件地址。
5MailMessage表示可以使用SmtpClient类发送的电子邮件。
6SmtpClient允许应用程序使用简单邮件传输协议(SMTP)发送电子邮件。
7SmtpException表示当SmtpClient无法完成发送或SendAsync操作时抛出的异常。

 

SmtpClient类

 

SmtpClient类允许应用程序使用简单邮件传输协议(SMTP)发送电子邮件。
 

以下是SmtpClient类的一些常用属性:

SN属性描述
1ClientCertificates指定应使用哪些证书建立安全套接字层(SSL)连接。
2Credentials获取或设置用于验证发件人的凭据。
3EnableSsl指定SmtpClient是否使用安全套接字层(SSL)加密连接。
4Host获取或设置用于SMTP事务的主机的名称或IP地址。
5Port获取或设置用于SMTP事务的端口。
6Timeout获取或设置一个值,该值指定同步发送调用超时的时间量。
7UseDefaultCredentials获取或设置一个布尔值,该值控制是否随请求一起发送DefaultCredentials。

 

以下是SmtpClient类的一些常用方法:

SN方法和说明
1

Dispose

向SMTP服务器发送QUIT消息,正常结束TCP连接,并释放SmtpClient类的当前实例使用的所有资源。

2

Dispose(Boolean)

向SMTP服务器发送QUIT消息,正常结束TCP连接,释放由SmtpClient类的当前实例使用的所有资源,并且可选地处置托管资源。

3

OnSendCompleted

引发SendCompleted事件。

4

Send(MailMessage)

将指定的消息发送到SMTP服务器进行传递。

5

Send(String,String,String,String)

将指定的电子邮件发送到SMTP服务器进行传送。消息发件人,收件人,主题和邮件正文使用String对象指定。

6

SendAsync(MailMessage,Object)

将指定的电子邮件发送到SMTP服务器进行传送。此方法不会阻止调用线程,并允许调用者将一个对象传递给操作完成时调用的方法。

7

 

SendAsync(String,String,String,String,Object)
将电子邮件发送到SMTP服务器进行传送。消息发件人,收件人,主题和邮件正文使用String对象指定。此方法不会阻止调用线程,并允许调用者将一个对象传递给操作完成时调用的方法。

 

8

SendAsyncCancel

取消异步操作以发送电子邮件。

9

SendMailAsync(MAILMESSAGE)

发送指定消息,以交付作为异步操作的SMTP服务器。

10

 

SendMailAsync(MailMessage)
将指定的消息发送到SMTP服务器以作为异步操作进行传递。

 

11

 

ToString
返回表示当前对象的字符串。

 

以下示例演示如何使用SmtpClient类发送邮件。 在这方面应注意以下几点:

  • 您必须指定用于发送电子邮件的SMTP主机服务器。 不同主机服务器的主机和端口属性将不同。 我们将使用gmail服务器。

  • 如果SMTP服务器需要,您需要授予认证凭据。

  • 您还应该分别使用MailMessage.From和MailMessage.To属性提供发件人的电子邮件地址和收件人的电子邮件地址。

  • 您还应该使用MailMessage.Body属性指定消息内容。

 

示例

在这个例子中,让我们创建一个发送电子邮件的简单应用程序。 执行以下步骤:

  • 在表单中添加三个标签,三个文本框和一个按钮控件。

  • 将标签的文本属性分别更改为 - “From”,“To:”和“Message:”。

  • 将文本的名称属性分别更改为txtFrom,txtTo和txtMessage。

  • 将按钮控件的文本属性更改为“发送”

  • 在代码编辑器中添加以下代码。

Imports System.Net.Mail
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' Set the caption bar text of the form.   
      Me.Text = "tutorialspoint.com"
   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Try
          Dim Smtp_Server As New SmtpClient
          Dim e_mail As New MailMessage()
          Smtp_Server.UseDefaultCredentials = False
          Smtp_Server.Credentials = New Net.NetworkCredential("username@gmail.com", "password")
          Smtp_Server.Port = 587
          Smtp_Server.EnableSsl = True
          Smtp_Server.Host = "smtp.gmail.com"

          e_mail = New MailMessage()
          e_mail.From = New MailAddress(txtFrom.Text)
          e_mail.To.Add(txtTo.Text)
          e_mail.Subject = "Email Sending"
          e_mail.IsBodyHtml = False
          e_mail.Body = txtMessage.Text
          Smtp_Server.Send(e_mail)
          MsgBox("Mail Sent")

      Catch error_t As Exception
          MsgBox(error_t.ToString)
      End Try

   End Sub

 

您必须提供您的gmail地址和真实密码以获取凭据。
 

当使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码时,将显示以下窗口,您将使用该窗口发送电子邮件,自行尝试。

 

 

从VB.Net发送电子邮件


 

 

 

 

VB.Net - XML处理

 

 

可扩展标记语言(XML)是一种非常类似于HTML或SGML的标记语言。 这是万维网联盟推荐的,可作为开放标准。

.Net框架中的System.Xml命名空间包含用于处理XML文档的类。 以下是System.Xml命名空间中常用的一些类。

 

SN描述
1XmlAttribute表示属性。属性的有效值和默认值在文档类型定义(DTD)或模式中定义。
2XmlCDataSection表示一个CDATA部分。
3XmlCharacterData提供由几个类使用的文本处理方法。
4XMLCOMMENT表示一个XML注释的内容。
5XmlConvert对XML名称进行编码和解码,并提供在公共语言运行时类型和XML模式定义语言(XSD)类型之间进行转换的方法。转换数据类型时,返回的值与语言环境无关。
6XmlDeclaration表示XML声明节点<?xml version ='1.0'...?>。
7XmlDictionary实现一本字典用来优化 Windows 通信基础(WCF) 的 XML 读取器/编写器实现。
8XmlDictionaryReaderWindows Communication Foundation(WCF)从XmlReader派生来进行序列化和反序列化的抽象类。
9XmlDictionaryWriter表示Windows Communication Foundation(WCF)从XmlWriter派生来进行序列化和反序列化的抽象类。
10XmlDocument表示XML文档。
11XmlDocumentFragment表示对树插入操作有用的轻量级对象。
12XmlDocumentType表示文档类型声明。
13XmlElement表示一个元素。
14XmlEntity表示一个实体声明,如<!ENTITY ...>。
15XmlEntityReference表示一个实体引用节点。
16XmlException返回有关最后一个异常的详细信息。
17XmlImplementation定义一组XmlDocument对象的上下文。
18XmlLinkedNode获取此节点之前或之后的节点。
19XmlNode表示XML文档中的单个节点。
20XmlNodeList表示节点的有序集合。
21XmlNodeReader表示提供对XmlNode中的XML数据的快速,非缓存转发访问的阅读器。
22XmlNotation表示一个注释声明,如<!NOTATION ...>。
23XmlParserContext提供XmlReader解析XML片段所需的所有上下文信息。
24XmlProcessingInstruction表示处理指令,XML定义为在文档的文本中保留处理器特定的信息。
25XmlQualifiedName表示一个XML限定名称。
26XmlReader表示一个阅读器,提供了快速,非缓存,只进到XML数据访问。
27XmlReaderSettings指定一组要在Create方法创建的XmlReader对象上支持的要素。
28XmlResolver解析由统一资源标识符(URI)命名的外部XML资源。
29XmlSecureResolver有助于通过封装XmlResolver对象并限制底层XmlResolver有权访问的资源来保护XmlResolver的另一个实现。
30XmlSignificantWhitespace表示混合内容节点中的标记之间或xml:space ='preserve'范围内的空白空间中的空格。这也称为有效的空白空间。
31XmlText表示元素或属性的文本内容。
32XmlTextReader表示提供对XML数据的快速,非缓存,仅转发访问的阅读器。
33XmlTextWriter代表作家提供了一个快速,非缓存,只进生成包含符合W3C可扩展标记语言(XML)1.0和XML中建议的命名空间XML数据流或文件的方式。
34XmlUrlResolver解析由统一资源标识符(URI)命名的外部XML资源。
35XmlWhitespace代表元素内容中的空白。
36XmlWriter表示提供快速,非缓存,仅转发方式生成包含XML数据的流或文件的写入程序。
37XmlWriterSettings指定一组要在XmlWriter.Create方法创建的XmlWriter对象上支持的要素。

 

XML解析器的API

 

XML数据的两个最基本和广泛使用的API是SAX和DOM接口。

XML的简单API(SAX):在这里,您注册感兴趣的事件的回调,然后让解析器继续处理文档。这在文档很大或者有内存限制时很有用,它在从磁盘读取文件时解析文件,整个文件从不存储在内存中。

文档对象模型(DOM)API:这是万维网联盟推荐,其中整个文件被读入存储器并以分层(基于树)的形式存储以表示XML文档的所有特征。

SAX显然不能像使用大文件时DOM那样快速地处理信息。另一方面,使用DOM可以真正地杀死你的资源,特别是如果用于很多小文件。

SAX是只读的,而DOM允许更改XML文件。由于这两个不同的API字面上互补,没有理由你不能使用它们两个大项目。

对于所有的XML代码示例,让我们使用一个简单的XML文件movies.xml作为输入:

 

<?xml version="1.0"?>

<collection shelf="New Arrivals">
<movie title="Enemy Behind">
   <type>War, Thriller</type>
   <format>DVD</format>
   <year>2003</year>
   <rating>PG</rating>
   <stars>10</stars>
   <description>Talk about a US-Japan war</description>
</movie>
<movie title="Transformers">
   <type>Anime, Science Fiction</type>
   <format>DVD</format>
   <year>1989</year>
   <rating>R</rating>
   <stars>8</stars>
   <description>A schientific fiction</description>
</movie>
   <movie title="Trigun">
   <type>Anime, Action</type>
   <format>DVD</format>
   <episodes>4</episodes>
   <rating>PG</rating>
   <stars>10</stars>
   <description>Vash the Stampede!</description>
</movie>
<movie title="Ishtar">
   <type>Comedy</type>
   <format>VHS</format>
   <rating>PG</rating>
   <stars>2</stars>
   <description>Viewable boredom</description>
</movie>
</collection>

 

解析XML使用SAX API

 

在SAX模型中,使用XmlReader和XmlWriter类来处理XML数据。

XmlReader类用于以快速,仅向前和非缓存方式读取XML数据。 它读取XML文档或流。

 

 

示例1

此示例演示从文件movies.xml中读取XML数据。

 

执行以下步骤:

  • 将movies.xml文件添加到应用程序的bin \ Debug文件夹中。

  • 在Form1.vb文件中导入System.Xml命名空间。

  • 在表单中添加标签,并将其文字更改为“Movies Galore”。

  • 添加三个列表框和三个按钮,以显示来自xml文件的电影的标题,类型和描述。

  • 使用代码编辑器窗口添加以下代码。

Imports System.Xml
Public Class Form1

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' Set the caption bar text of the form.   
      Me.Text = "tutorialspoint.com"
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      ListBox1().Items.Clear()
      Dim xr As XmlReader = XmlReader.Create("movies.xml")
      Do While xr.Read()
          If xr.NodeType = XmlNodeType.Element AndAlso xr.Name = "movie" Then
              ListBox1.Items.Add(xr.GetAttribute(0))
          End If
      Loop
   End Sub
   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
      ListBox2().Items.Clear()
      Dim xr As XmlReader = XmlReader.Create("movies.xml")
      Do While xr.Read()
          If xr.NodeType = XmlNodeType.Element AndAlso xr.Name = "type" Then
              ListBox2.Items.Add(xr.ReadElementString)
          Else
              xr.Read()
          End If
      Loop
   End Sub
   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
      ListBox3().Items.Clear()
      Dim xr As XmlReader = XmlReader.Create("movies.xml")
      Do While xr.Read()
          If xr.NodeType = XmlNodeType.Element AndAlso xr.Name = "description" Then
              ListBox3.Items.Add(xr.ReadElementString)
          Else
              xr.Read()
          End If
      Loop
   End Sub
End Class

使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码。 单击按钮将显示文件中电影的标题,类型和描述。

 

VB.Net XML处理示例1

 

XmlWriter类用于将XML数据写入流,文件或TextWriter对象。 它也以只向前,非缓存的方式工作。

示例2

让我们通过在运行时添加一些数据来创建一个XML文件。 执行以下步骤:

  • 在窗体中添加WebBrowser控件和按钮控件。

  • 将按钮的Text属性更改为显示作者文件。

  • 在代码编辑器中添加以下代码。

Imports System.Xml
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' Set the caption bar text of the form.   
      Me.Text = "tutorialspoint.com"
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim xws As XmlWriterSettings = New XmlWriterSettings()
      xws.Indent = True
      xws.NewLineOnAttributes = True
      Dim xw As XmlWriter = XmlWriter.Create("authors.xml", xws)
      xw.WriteStartDocument()
      xw.WriteStartElement("Authors")
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "1")
      xw.WriteElementString("fname", "Zara")
      xw.WriteElementString("lname", "Ali")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "2")
      xw.WriteElementString("fname", "Priya")
      xw.WriteElementString("lname", "Sharma")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "3")
      xw.WriteElementString("fname", "Anshuman")
      xw.WriteElementString("lname", "Mohan")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "4")
      xw.WriteElementString("fname", "Bibhuti")
      xw.WriteElementString("lname", "Banerjee")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "5")
      xw.WriteElementString("fname", "Riyan")
      xw.WriteElementString("lname", "Sengupta")
      xw.WriteEndElement()
      xw.WriteEndElement()
      xw.WriteEndDocument()
      xw.Flush()
      xw.Close()
      WebBrowser1.Url = New Uri(AppDomain.CurrentDomain.BaseDirectory + "authors.xml")
   End Sub
End Class

使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码。 单击显示作者文件将在Web浏览器上显示新创建的authors.xml文件。

 

VB.Net XML处理示例2

 

使用DOM API解析XML

根据文档对象模型(DOM),XML文档由节点和节点的属性组成。 XmlDocument类用于实现.Net框架的XML DOM解析器。 它还允许您通过插入,删除或更新文档中的数据来修改现有的XML文档。

 

 

以下是XmlDocument类的一些常用方法:

SN方法名称和说明
1

AppendChild

将指定的节点添加到此节点的子节点列表的末尾。

2

CreateAttribute(String)

使用指定的名称创建XmlAttribute。

3

CreateComment

创建包含指定数据的XmlComment。

4

CreateDefaultAttribute

创建具有指定前缀,本地名称和命名空间URI的默认属性。

5

CreateElement(String)

创建具有指定名称的元素。

6

CreateNode(String, String, String)

创建具有指定节点类型,Name和NamespaceURI的XmlNode。

7

CreateNode(XmlNodeType, String, String)

创建具有指定的XmlNodeType,Name和NamespaceURI的XmlNode。

8

CreateNode(XmlNodeType, String, String, String)

创建具有指定的XmlNodeType,Prefix,Name和NamespaceURI的XmlNode。

9

CreateProcessingInstruction

创建具有指定名称和数据的XmlProcessingInstruction。

10

CreateSignificantWhitespace

创建一个XmlSignificantWhitespace节点。

11

createTextNode

创建具有指定文本的XMLTEXT。

12

CreateWhitespace

创建一个XmlWhitespace节点。

13

CreateXmlDeclaration

创建一个具有指定值的XmlDeclaration节点。

14

GetElementById

获取具有指定ID的XmlElement。

15

GetElementsByTagName(String)

返回一个包含与指定名称匹配的所有后代元素的列表的XmlNodeList。

16

GetElementsByTagName(String, String)

返回一个包含与指定名称匹配的所有后代元素的列表的XmlNodeList。

17

InsertAfter

在指定的引用节点之后立即插入指定的节点。

18

InsertBefore

在指定的引用节点之前插入指定的节点。

19

Load(Stream)

从指定的流装载XML文档。

20

Load(String)

从指定的TextReader加载XML文档。

21

Load(TextReader)

从指定的TextReader加载XML文档。

22

Load(XmlReader)

从指定的XmlReader加载XML文档。

23

LoadXml

从指定的字符串加载XML文档。

24

PrependChild

将指定的节点添加到此节点的子节点列表的开头。

25

ReadNode

基于XmlReader中的信息创建XmlNode对象。读取器必须位于节点或属性上。

26

RemoveAll

删除当前节点的所有子节点和/或属性。

27

RemoveChild

删除指定的子节点。

28

ReplaceChild

将子节点oldChild替换为newChild节点。

29

Save(Stream)

保存XML文档到指定的流。

30

Save(String)

将XML文档保存到指定的文件。

31

Save(TextWriter)

将XML文档保存到指定的TextWriter。

32

Save(XmlWriter)

将XML文档保存到指定的XmlWriter。

 

示例3

在本示例中,让我们在xml文档authors.xml中插入一些新节点,然后在列表框中显示所有作者的名字。

 

执行以下步骤:

  • 将authors.xml文件添加到应用程序的bin / Debug文件夹中(如果您已经尝试了最后一个示例,应该在那里)

  • 导入System.Xml命名空间

  • 在表单中添加列表框和按钮控件,并将按钮控件的text属性设置为“显示作者”。

  • 使用代码编辑器添加以下代码。

Imports System.Xml
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' Set the caption bar text of the form.   
      Me.Text = "tutorialspoint.com"
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      ListBox1.Items.Clear()
      Dim xd As XmlDocument = New XmlDocument()
      xd.Load("authors.xml")
      Dim newAuthor As XmlElement = xd.CreateElement("author")
      newAuthor.SetAttribute("code", "6")
      Dim fn As XmlElement = xd.CreateElement("fname")
      fn.InnerText = "Bikram"
      newAuthor.AppendChild(fn)
      Dim ln As XmlElement = xd.CreateElement("lname")
      ln.InnerText = "Seth"
      newAuthor.AppendChild(ln)
      xd.DocumentElement.AppendChild(newAuthor)
      Dim tr As XmlTextWriter = New XmlTextWriter("movies.xml", Nothing)
      tr.Formatting = Formatting.Indented
      xd.WriteContentTo(tr)
      tr.Close()
      Dim nl As XmlNodeList = xd.GetElementsByTagName("fname")
      For Each node As XmlNode In nl
          ListBox1.Items.Add(node.InnerText)
      Next node
   End Sub
End Class

使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码。 单击“显示作者”按钮将显示所有作者的名字,包括我们在运行时添加的作者。

 

VB.Net XML处理示例3


 

 

 

 

VB.Net - Web编程

 

动态Web应用程序包括以下两种类型的程序之一或两者:

  • 服务器端脚本 -这些是在Web服务器上执行的程序,使用服务器端脚本语言(如ASP(Active Server Pages)或JSP(Java Server Pages))编写。

  • 客户端脚本 -这些是在浏览器上执行的程序,使用脚本语言(如JavaScript,VBScript等)编写。

ASP.Net是由Microsoft引入的ASP的.Net版本,用于通过使用服务器端脚本创建动态网页。 ASP.Net应用程序是使用.Net框架中存在的可扩展和可重用组件或对象编写的编译代码。这些代码可以使用.Net框架中的类的整个层次结构。

 

ASP.Net应用程序代码可以用以下任何一种语言编写:

  • Visual Basic .NET

  • C#

  • Jscript脚本

  • J#

 

在本章中,我们将简要介绍使用VB.Net编写ASP.Net应用程序。有关详细讨论,请参阅ASP.Net教程。

 

ASP.Net内置对象

ASP.Net有一些在Web服务器上运行的内置对象。 这些对象具有在应用程序开发中使用的方法,属性和集合。

下表列出了具有简要说明的ASP.Net内置对象:

 

目的描述

Application 

应用

 

描述存储与整个Web应用程序相关的信息的对象的方法,属性和集合,包括应用程序生命周期中存在的变量和对象。
您使用此对象来存储和检索要在应用程序的所有用户之间共享的信息。例如,您可以使用Application对象来创建电子商务页面。

 

Request

请求

 

描述存储与HTTP请求相关的信息的对象的方法,属性和集合。这包括表单,Cookie,服务器变量和证书数据。
您使用此对象来访问在从浏览器到服务器的请求中发送的信息。例如,您可以使用Request对象来访问用户在HTML表单中输入的信息。

 

Response
响应

 

描述存储与服务器响应相关的信息的对象的方法,属性和集合。这包括显示内容,操作标头,设置区域设置和重定向请求。
您使用此对象向浏览器发送信息。例如,您使用Response对象将输出从脚本发送到浏览器。

 

Server
服务器

 

描述提供各种服务器任务的方法的对象的方法和属性。使用这些方法,您可以执行代码,获取错误条件,编码文本字符串,创建对象供网页使用,并映射物理路径。
您使用此对象访问服务器上的各种实用程序功能。例如,您可以使用Server对象为脚本设置超时。

 

Session
会话

 

描述存储与用户会话相关的信息的对象的方法,属性和集合,包括会话生存期内存在的变量和对象。
您使用此对象来存储和检索有关特定用户会话的信息。例如,您可以使用Session对象来保存有关用户及其首选项的信息,并跟踪待处理操作。

 

 

ASP.Net编程模型

ASP.Net提供两种类型的编程模型:

  • Web Forms-这使您能够创建将应用于用户界面的各种组件的用户界面和应用程序逻辑。

  • WCF Services-这使您可以远程访问一些服务器端功能。

对于本章,您需要使用免费的Visual Studio Web Developer。 IDE与您已经用于创建Windows应用程序的IDE几乎相同。

 

VS Web开发IDE

 

Web表单

Web表单包括:

  • 用户界面

  • 应用程序逻辑

 

用户界面包括静态HTML或XML元素和ASP.Net服务器控件。 创建Web应用程序时,HTML或XML元素和服务器控件存储在具有.aspx扩展名的文件中。 此文件也称为页面文件。

应用程序逻辑包括应用于页面中用户界面元素的代码。 你可以用任何.Net语言,如VB.Net或C#编写代码。
 

下图显示了“设计”视图中的Web窗体:

 

 

Web窗体

 

示例

让我们创建一个带有Web表单的新网站,该表单将显示用户点击按钮时的当前日期和时间。 执行以下步骤:

  • 选择文件 - >新建 - > Web站点。将出现“新建网站”对话框。

    Web窗体示例

  • 选择ASP.Net空网站模板。 键入网站的名称,然后选择保存文件的位置。

  • 您需要向站点添加默认页面。 右键单击解决方案资源管理器中的网站名称,然后从上下文菜单中选择添加新项目选项。 将显示“添加新项”对话框:

    Web窗体示例

  • 选择Web窗体选项并提供默认页面的名称。 我们把它保存为Default.aspx。 单击添加按钮。

  • 默认页面显示在源视图中

    Web窗体示例

  • 通过向“值”添加值来设置“默认”网页的标题

  • 要在网页上添加控件,请转到设计视图。 在表单上添加三个标签,一个文本框和一个按钮。

    Web窗体示例

  • 双击该按钮,并将以下代码添加到该按钮的Click事件:

Protected Sub Button1_Click(sender As Object, e As EventArgs) _
Handles Button1.Click
   Label2.Visible = True
   Label2.Text = "Welcome to Tutorials Point: " + TextBox1.Text
   Label3.Text = "You visited us at: " + DateTime.Now.ToString()
End Sub

当使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码时,浏览器中将打开以下页面:

 

Web窗体示例

输入您的姓名,然后点击提交按钮:

 

Web窗体示例

网页服务

 

Web服务是一个Web应用程序,基本上是一个由其他应用程序可以使用的方法组成的类。它也遵循代码隐藏架构,如ASP.Net网页,虽然它没有用户界面。
 

.Net Framework的早期版本使用了ASP.Net Web Service的这个概念,它具有.asmx文件扩展名。然而,从.Net Framework 4.0开始,Windows通信基础(WCF)技术已经发展成为Web Services,.Net Remoting和一些其他相关技术的新继任者。它把所有这些技术结合在一起。在下一节中,我们将简要介绍Windows Communication Foundation(WCF)。

 

 

如果您使用先前版本的.Net Framework,您仍然可以创建传统的Web服务。有关详细说明,请参阅ASP.Net - Web服务详细说明。

 

Windows通信基础

 

Windows Communication Foundation或WCF提供了一个用于创建分布式面向服务的应用程序的API,称为WCF服务。

像Web服务一样,WCF服务也支持应用程序之间的通信。但是,与Web服务不同,此处的通信不仅限于HTTP。 WCF可以配置为通过HTTP,TCP,IPC和消息队列使用。支持WCF的另一个强点是,它提供对双工通信的支持,而对于Web服务,我们只能实现单工通信。

从初学者的角度来看,编写WCF服务与编写Web服务并不完全不同。为了保持简单,我们将看到如何:

 

  • 创建一个WCF服务

  • 创建一个服务合同并定义操作

  • 执行合同

  • 测试服务

  • 使用该服务

 

示例

要理解这个概念,让我们创建一个简单的服务,提供股价信息。客户可以根据股票代号查询股票的名称和价格。为了保持这个例子简单,这些值被硬编码在二维数组中。此服务将有两种方法:

  • GetPrice方法 - 它将返回股票的价格,基于提供的符号。

  • GetName方法 - 它将返回股票的名称,基于提供的符号。

 

创建WCF服务

执行以下步骤:

  • 打开VS Express for Web 2012

  • 选择新的网站,打开新建网站对话框。

  • 选择模板列表中的WCF服务模板:

    创建WCF服务

  • 从Web位置下拉列表中选择文件系统。

  • 提供WCF服务的名称和位置,然后单击“确定”。

创建一个新的WCF服务。

 

创建服务合同并定义操作

服务契约定义服务执行的操作。 在WCF服务应用程序中,您会发现在解决方案资源管理器中的App_Code文件夹中自动创建两个文件

  • IService.vb - 这将有服务合同; 在简单的话,它将有服务的接口,与服务将提供的方法的定义,您将在您的服务中实现。

  • Service.vb - 这将实现服务合同。

    WCF服务实例

 

用给定的代码替换IService.vb文件的代码:

Public Interface IService
    <OperationContract()>
    Function GetPrice(ByVal symbol As String) As Double

    <OperationContract()>
    Function GetName(ByVal symbol As String) As String
End Interface

 

实施合同

 

在Service.vb文件中,您将找到一个名为Service的类,它将实现在IService接口中定义的服务契约。

使用以下代码替换IService.vb的代码:

 

' NOTE: You can use the "Rename" command on the context menu to change the class name "Service" in code, svc and config file together.
Public Class Service
   Implements IService
   Public Sub New()
   End Sub
   Dim stocks As String(,) =
   {
   {"RELIND", "Reliance Industries", "1060.15"},
   {"ICICI", "ICICI Bank", "911.55"},
   {"JSW", "JSW Steel", "1201.25"},
   {"WIPRO", "Wipro Limited", "1194.65"},
   {"SATYAM", "Satyam Computers", "91.10"}
   }

   Public Function GetPrice(ByVal symbol As String) As Double _
   Implements IService.GetPrice

      Dim i As Integer
      'it takes the symbol as parameter and returns price
      For i = 0 To i = stocks.GetLength(0) - 1

          If (String.Compare(symbol, stocks(i, 0)) = 0) Then
              Return Convert.ToDouble(stocks(i, 2))
          End If
      Next i
      Return 0
   End Function

   Public Function GetName(ByVal symbol As String) As String _
   Implements IService.GetName

      ' It takes the symbol as parameter and 
      ' returns name of the stock
      Dim i As Integer
      For i = 0 To i = stocks.GetLength(0) - 1

          If (String.Compare(symbol, stocks(i, 0)) = 0) Then
              Return stocks(i, 1)
          End If
      Next i
      Return "Stock Not Found"
   End Function
End Class

 

测试服务

要运行如此创建的WCF服务,请从菜单栏中选择Debug-> Start Debugging选项。 输出将是:

WCF服务测试

 

 

要测试服务操作,请从左窗格的树中双击操作的名称。 新的选项卡将显示在右窗格中。

在右窗格的“请求”区域中输入参数值,然后单击“调用”按钮。
 

下图显示了测试GetPrice操作的结果:

 

 

WCF服务测试

 

下图显示了测试GetName操作的结果:

 

WCF服务测试

 

使用服务

 

让我们在同一个解决方案中添加一个默认页面,一个ASP.NET Web窗体,我们将使用我们刚刚创建的WCF服务。

 

执行以下步骤:

 

  • 右键单击解决方案资源管理器中的解决方案名称,并向解决方案添加新的Web表单。 它将被命名为Default.aspx。

  • 在表单上添加两个标签,一个文本框和一个按钮。

    WCF服务利用

  • 我们需要添加一个服务引用到我们刚刚创建的WCF服务。 右键单击解决方案资源管理器中的网站,然后选择添加服务引用选项。 这将打开“添加服务引用”对话框。

  • 在地址文本框中输入服务的URL(位置),然后单击执行按钮。 它使用默认名称ServiceReference1创建服务引用。 单击确定按钮。

    添加服务引用

    添加引用为您的项目做了两个作业:

    • 在web.config文件中为服务创建地址和绑定。
    • 创建代理类以访问服务。

 

双击表单中的“获取价格”按钮,在其Click事件上输入以下代码段:

Partial Class _Default
   Inherits System.Web.UI.Page

   Protected Sub Button1_Click(sender As Object, e As EventArgs) _
   Handles Button1.Click
      Dim ser As ServiceReference1.ServiceClient = _ 
      New ServiceReference1.ServiceClient
      Label2.Text = ser.GetPrice(TextBox1.Text).ToString()
   End Sub
End Class

当使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码时,浏览器中将打开以下页面:

 

WCF服务利用

 

输入符号并单击获取价格按钮以获得硬编码的价格:

 

WCF服务利用


 

 

 

未完待续,下一章节,つづく

 

 

 

 

 

 

已标记关键词 清除标记
<br>http://www.golden-book.com/ProductImage/051116-051130/9787302058069.jpg<br><br><br>VB.NET高级编程(第二版) PDG格式<br><br>原书名:Professinoal VB.NET 2nd Edition <br><br>原出版社:Wrox Press <br><br>作者: Fred Barwell,Richard Blair等 <br><br>出版社: 清华大学出版社 <br><br>译者: 张加荣 <br><br>Visual Basic.NET是Visual Basic的最新版本,也是Microsoft的.NET战略中的主要组成部分。与以前的VB版本相比,VBNET有了质的飞跃,变得更为灵活也更为强大。Microsoft在VBNET中融入了许多新功能,其中非常重要的就是完全实现了面向对象的编程,并极大地增强了Web的设计功能。<br>本书的主要内容包括:.NET Framework和公共语言运行时(CLR)、应用继承从基类中派生类、利用Try...Catch...Finally结构处理错误、命名空间、使用ADO.NET访问数据、创建Windows应用程序和定制Windwos控件、组合使用COM和ActiveX组件、创建Windows服务、用VBNET访问Web上的信息以发用.NET Framework SDK中提供的工具保护应用程序和代码安全等。<br>本书主要适用于希望学习VBNET和.NET Famework的中高级VB开发人员。<br><br><br>第1章 什么是Microsoft.NET<br>1.1 DNA编程模式<br>1.l.l 表示层<br>1.1. 2 中间层<br>1.1. 3 数据层<br>1. 1.4 关于DNA模型的问题<br>1.2 COM的限制<br>1.2.1 DLL Hell<br>1.2. 2 缺乏与其他平台的交互操作能力<br>1.2. 3 缺乏内置的继承<br>1.3 VB6用于DNA应用程序开发的局限<br>l.4 基于DNA的Internet开发的其他局限<br>l.4.l 不同的编程模式<br>1.4.2 非自动状态管理<br>1.4. 3 Web上的弱用户界面<br>1.5 需要抽象操作系统<br>1.6 解决方案--Microsoft.NET<br>l. 7 Microsoft.NET的结构<br>1.7.l 公共语言运行时<br>1.7.2 NET Framework类库<br>l.7.3 用户接口和程序接口<br>1. 7. 4 XML作为.NET的"元语言"<br>l. 8 Microsoft.NET如何达到它的目标<br>l.8.l 简化软件开发<br>1.8. 2 高度的分布式系统<br>1.8. 3 Web上的更好用户界面<br>l. 8.4 简化部署<br>1.8.5 对各种语言的支持<br>1.8. 6 平台的可扩展性<br>1.8. 7 未来的可移植性<br>1.9 COM的角色<br>1.10 DNA的角色<br>1.11 其他优点<br>1.12 对Visual Basic的影响<br>1.13 小结<br>第2章 VB N ET和VS. NET简介<br>2.1 Visual Studio.NET<br>2.1.l 我的配置<br>2. 1.2 定制帮助<br>2.2 新的IDE特性<br>2.3 创建Windows应用程序<br>2.4 命名空间和Imports关键字<br>2.4.1 Windows应用程序的默认命名空间<br>2.4.2 选项卡与MDI界面<br>2.4.3 新代码窗口<br>2.4. 4 Properties窗口<br>2.5 代码分析<br>2.6 AssemblyInfo.vb文件<br>2. 7 增强范例应用程序的功能<br>2.7.l 添加控件<br>2.7. 2 添加事件处理程序<br>2.7. 3 修改代码<br>2.8 单步调试Hello World范例<br>2.8.l 构建配置(build configurations)<br>2.8.2 建立应用程序<br>2. 8.3 运行应用程序<br>2.9 VS.NET的有用功能<br>2. 9.l 任务列表<br>2.9.2 命令窗口<br>2.9.3 Server Explorer<br>2.10 在Visual Studio.NET中记录和使用宏<br>2. 11 小结<br>第3章 公共语言运行时<br>3.1 .NET应用程序概述<br>3.1.l 程序集<br>3.1.2 模块<br>3.1.3 类型<br>3.2 版本化和部署<br>3.2. 1 对于版本化的更好支持<br>3. 2. 2 更好的部署<br>3.3 内存管理<br>3.3.l 更好的垃圾收集功能<br>3. 3.2 更快的对象内存分配<br>3. 3.3 GC的优化<br>3.4 跨语言的集成<br>3. 5 元数据<br>3. 5.l 对元数据的更好支持<br>3.5.2 属性(Attfibute)<br>3.5.3 Reflection API<br>3.6 IL Disassembler<br>3.7 小结<br>第4章 变量和类型<br>4.l 值类型和引用类型<br>4.2 值类型(结构)<br>4.3 显式转换<br>4.3.1 Option Strict、Option Explicit和Option Compare<br>4.3.2 执行显式转换<br>4.4 引用类型(类)<br>4.4.1 Object类<br>4.4.2 String类<br>4.4. 3 DSNull类<br>4.4. 4 数组<br>4.4.5 集合<br>4.5 参数传递<br>4.6 装箱<br>4.7 不再使用的关键字和函数<br>4.8 小结<br>第5章 对象语法综述<br>5. l 面向对象的术语<br>5.1.1 对象、类和实例<br>5. l.2 对象的组成<br>5.2 使用对象<br>5. 2.1 对象的声明和实例化<br>5.2. 2 对象引用<br>5.2. 3 取消对象的引用<br>5.2.4 前期及后期绑定<br>5. 3 创建类<br>5.3.1 创建基类<br>5. 3. 2 构造函数方法<br>5.3.3 终止和清除<br>5. 4 高级概念<br>5.4.l 高级方法<br>5.4.2 类和组件<br>5.5 小结<br>第6章 继承和接口<br>6.l 继承<br>6.2 多接口<br>6. 2.1 对象接口<br>6. 2.2 辅助接口<br>6. 3 小结<br>第7章 对象和组件的应用<br>7.l 抽象性<br>7.2 封装性<br>7.3 多态性<br>7. 3. 1 方法签名<br>7. 3.2 实现多态性<br>7. 4 继承<br>7.4. 1 使用继承的场合<br>7.4.2 继承和多接口<br>7.4.3 进一步探讨<br>7. 4.4 容易被破坏的基类问题<br>7. 5 小结<br>第8章 命名空间<br>8.l 命名空间的定义<br>8. 1.1 命名空间和引用<br>8.1.2 通用的命名空间<br>8.2 导入命名空间并为其命名别名<br>8.2. 1 导入命名空间<br>8.2.2 为命名空间命名别名<br>8.3 创建命名空间<br>8.4 小结<br>第9章 错误处理<br>9.1 CLR异常处理程序<br><br>http://www.golden-book.com/booksinfo/16/16950.html<br><br>
vb基础教程我们需要什么?当我们在一个精彩的游戏世界中游历了一番之后,或是惊叹于某一工具软件的小巧精致之余,多少总会产生些许编程的冲动。编程吗,在以前如果你对电脑还是一个门外汉,那实在是一件可望而不可及的事情。如果运用基于DOS下的编程语言,譬如C、Qbasic、Pascal等等,真不知何年何月才能有所成就。   编程是需要天赋的,你必须在大脑中对整个程序有一个清晰的轮廓,一个高效的流程,这并不是每个人都能做到的,你必须思之慎之,这也使编程变成一件最枯燥无味的事情。但在第四代计算机语言(可视化编程)出现后,可以确切的说它开发了人们的更多天赋,并不局限于那些头脑异常清晰的人,每一个人都可以发现自己也可以编出一些从前不敢问津的程序,想象力的充分发挥才是第四代语言的精粹。   Visual Basic(以下简称VB)可以说是可视化语言的先驱了,而且它也是可视化程度最高的一个,从几年前VB诞生之日起到现在,它已经经历了五个版本,而且现在微软正在紧张的进行着VB6.0的研制、测试,这么高的更新率,不外乎说明两个问题:用户对VB的热衷,微软对VB的重视。不可否认微软对市场的预测能力是极为高明的,而它强大的技术、财力支持也使它在许多以前未进入的领域,在不长的时间内有成为最有力的竞争对手,如IE之于浏览器领域,《帝国时代》之于游戏都是最好的例证。对于VB现在也有一个很强的竞争对手――Delphi,有人把它称作VB杀手,这显然有偏激之处,VB的确有它的不足之处,但Delphi又何尝不是呢,而且以微软对VB的倾心,VB的功能必然会越来越强大。
相关推荐
中文名: VB.NET入门经典 原名: Beginning Visual Basic .NET 作者: (美)威利斯 (Willis,T) (美)克罗斯兰德 (Crossland,J.)译者: 杨浩资源格式: PDF 版本: 第三版 出版社: 清华大学出版社书号: 9787302102595发行时间: 2005年3月1日 地区: 大陆 语言: 简体中文 简介: 本书全面讲述了构建应用程序、创建窗口和对话框、异常处理、使用面对象的编程技术等基础知识。读者将学习如何创建菜单、工具栏、对话框和Windows应用程序中的其他控件,掌握如何通过循环和分支结构出决策,还将全面了解面向对象编程的概念和理论。 掌握了这些知识后,读者就可以进一步研究数据库编程,使用Web窗体创建用于Web的ASP.NET应用程序,并了解XML的基础知识。最后,通过Web Services,还可以把在线提供的功能无缝地集成到自己的应用程序中。 本书主要内容: 编程的基础知识、VB.NET的工作原理以及.NET Framework的原则; 如何处理数据结构以及构建和部署Windows应用程序; 面向对象编程的概念和理论; 调试和错误处理技巧; Web Services和.NET Remoting技术; 如何建立类库、创建自定义控制和自定义图形; 运用SQL Server和ADO.NET进行数据库编程; 了解移动应用程序及其构建方法。 本书读者对象: 本书适合于VB.NET编程的初学者,也适合于使用过其他语言编程,但未接触过.NET的程序员。 目录: 第1章 初识Visual Basic .NET 1.1 Windows和DOS编程 1.2 安装Visual Basic .NET 1.3 Visual Basic .NET集成开发环境 1.3.1 配置文件设置页 1.3.2 Projects选项卡 1.3.3 菜单 1.3.4 工具栏 1.4 创建简单的应用程序 1.4.1 Visual Studio .NET集成开发环境中的窗口 1.4.2 工具箱 1.4.3 改进型匈牙利表示法 1.4.4 代码编辑器 1.5 使用帮助系统 1.6 小结 1.7 练习 第2章 Microsoft .NET Framework …… 第3章 编写软件 第4章 流程控制 第5章 处理数据结构 第6章 建立Windows应用程序 第7章 显示对话框 第8章 创建菜单 第9章 调试和错误处理 第10章 构建对象 第11章 高级面向对象技术 第12章 建立类库 第13章 创建自定义控件 第14章 编写自定义图形 第15章 访问数据库 第16章 使用ADO.NET和SQL Server进行数据库编程 第17章 Web窗体 第18章 创建Web服务器控件 第19章 Visual Basic .NET 和 XML 第20章 Web Services和.NET Remoting技术 第21章 部署应用程序 第22章 建立移动应用程序 附录A 如何深入学习 附录B 体系结构和设计模式 附录C 代码的安全性 附录D 练习答案 附录E .NET Framework 1.1版本对1.0版本的改进
001、VB串口通讯视频教程源码41个 002、Visual Basic串口通信工程开发实例导航随书源码7个 003、Visual Basic串口通信与测控应用技术实战详解 源代码(15个全) 004、GE PLC串口通讯,VB编制,读取内存单元 005、PC机与51单片机之间的串口通讯,VB编的,分PC和单片机两部分 006、VB6的串口通信程序,还有crc校验 007、VB Modbus RTU源码,其中协议部分已生成DLL,可直接调用 008、VB.net开发的串口调试程序 009、VB.net实现串口编程,希望大家有用 010、VB版串口调试程序,包含VB源码及安装文件,适合调试串口 011、VB编程RS232串口控制DA数模转换 012、VB编程实现的串口调试工具源码 013、VB编写的RS232串口通信测试程序,以txt格式接受,可定义发送字符 014、VB编写的SouthStar串口测试与51串口烧写器V1.0版 015、VB编写的串口调试助手1.0的源码 016、VB编写的串口短信发送程序,需要数据线支持 017、VB编写的串口通信程序,实现多机通信 018、VB编写的串口通信程序,主要用于上位机与下位机间的通信 019、VB编写的串口通信程序界面参考网上的程序较简单 020、VB编写的串口通讯界面,主要面向51单片机的串口通信 021、VB编写的单片机和PC串口通信的调试程序 022、VB编写的仿真实电子琴操作界面,包含与FPGA串口通信的功能 023、VB串口API通讯,附带BAS文件全部源码,实现与饭卡读卡器通讯 024、VB串口编程,关于上位机的应用,特别适合初级学习VB的学员 025、VB串口编程调试精灵源码 026、VB串口编程实现完整的多费率电表读数软件 027、VB串口程序,,是一个串口使用例程,对初学者有用,特别是工控类的 028、VB串口传输文本,实现2台PC间的通信,类似简单的聊天工具 029、VB串口的一个电子称的项目 030、VB串口调试程序,用于通过串口控制松下空调测试 031、VB串口调试程序及源码 032、VB串口调试软件源代码,可以参考修改为其它通讯程序 033、VB串口调试软件源文件 034、VB串口控制步进电机程序完整源码 035、VB串口通信 6路10位AD转换数据采集源程序 036、VB串口通信,API串口通信模块源码 037、VB串口通信,适用简单,适合初学者 038、VB串口通信操作界面,进行数据采集,画实时曲线 039、VB串口通信程序,可以读取串口并显示保存数据,且能显示数据曲线 040、VB串口通信的源码,学习的好资料 041、VB串口通信调试器的源码程序 042、VB串口通信设计视频演示源码 043、VB串口通信示例 044、VB串口通信数据源码 045、VB串口通信之串口接收程序 046、VB串口通讯测试源代码,有文本和图形两种端口数据观察方式 047、VB串口通讯程序,用来跟单片机通讯 048、VB串口通讯代码(部分) 049、VB串口通讯的参考源程序 050、VB串口通讯实例 高精度电压表(24bit) VB源程序 051、vb串口通讯示例 052、VB串口与伺服电机DSP2407通讯完整代码源程序 053、VB串口源码,动力电池检测数据采集,内含电导巡检模块通讯报文,可,读写,保存,备份数据 054、VB串口字节通信程序,包括:1字节发送子程序,n字节接收子程序 055、VB串行口通信测试示例 056、VB串行通信试验程序 057、VB的MODEM通信源代码,智能化水电远端数据读取系统 058、VB的串口源程序,包括串口的配置界面,接收功能和发送功能 059、VB访问串口,并读取电子秤上显示的数据 060、VB和西门子S7-300 PLC串口通讯程序能实现读写功能 061、VB检测串口工作状态 062、VB简单的串口短信收发功能,使用短信猫测试通过 063、VB开发串口通信,关于生物医学工程专业的血氧饱和度的设计 064、VB开发串口通信软件,利用按钮控件控制高清晰数字展示台 065、VB开发的RS232串口图像处理器驱动(摄像头驱动) 066、VB开发的串口通信源码 067、VB开发的串口与三菱FX PLC通讯源码 068、VB控制串口232通讯,对飞利浦M1卡内数据进行处理,支持密码修改等 069、VB利用Mscomm控件编写的通讯终端,可做串口通讯编程参考示例 070、VB平台单片机与PC机串口通信的PC端程序。小巧易用,功能丰富 071、VB嵌入式串口通讯波形分析显示软件 072、VB实现串口调试LED信息显示屏设备主要代码 073、VB实现串口调试工具的完整源码 074、vb实现串口通信 文件传送系统,用vb以及mscomm控件实现 075、VB实现串口通信,发送命令从而接收相应数据 076、VB使用mscom控件实现PC机与单片机串口通信 077、VB通过COM串口读取条形码设备 078、VB通过串口控制单片机读写24C02源代码 079、VB通讯程序,连接串口可在电脑显示来电号码 080、VB下的串口发短信程序,可选择端口,设置短信中心号码 081、VB写的串口通信,发送和接收实例 082、VB写的串口通信分析程序源码 083、VB写的串口通讯,通过串口对单片机进行控制 084、VB写的串口通讯软件,简单易学,适合初学者 085、VB写的通过串口与考勤机连接通讯的程序 086、vb用控件的写的串口程序,是vb的经典之作 087、VB与USB转串口的通讯完整程序,有详细说明,不需要安装驱动 088、vb与串口通信的关于回路测试的小程序很实用 089、vb语言开发的串口通信,可实现拨号传送文件等 090、VB中串口事件处理函数的示例 091、VB中的串口通讯,串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用 092、VB自动枚举系统串口加摄象头图象采集,坐标系变换 093、Visual Basic2005与自动化系统监控(串并行控制)光盘
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页