您的位置:首页 > 数据库

Visual Studio 2005 初体验之三:使用DBFactory class连接数据库

2006-12-11 19:59 429 查看

Visual Studio 2005 初体验之三:使用DBFactory class连接数据库

在以前开发的项目中,连接到不同的数据源需要使用不同的代码,VS2005中的DBFactory class则可以完成对不同数据源的连接使用相同的代码。因此,如果在一个项目中需要使用多个数据源(如Access、SQLServer、Foxpro等),那么VS2005为开发者提供了很好的途径。

实例:

1、新建一个工程,按照图示的要求布置界面。



2、GetData button click事件的代码:

2.1、获得使用的数据库名称:
Dim myName As String = providerComboBox.SelectedItem.ToString()

2.2、定义连接数据库对象:
Dim myConnectionSettings As ConnectionStringSettings = ConfigurationManager.ConnectionStrings(myName)
Dim myProvider As DbProviderFactory = DbProviderFactories.GetFactory(myConnectionSettings.ProviderName)
Dim myConnection As DbConnection = myProvider.CreateConnection()
myConnection.ConnectionString = myConnectionSettings.ConnectionString

2.3、打开数据库连接对象:
myConnection.Open()

2.4、为datagrid定义一个数据集:
Dim myAdapter As DbDataAdapter = myProvider.CreateDataAdapter()
Dim myCommand As DbCommand = myProvider.CreateCommand()
Dim myQuery As String = "SELECT * FROM SampleData"
Dim myDataSet As DataSet = New DataSet()
myCommand.Connection = myConnection
myCommand.CommandText = myQuery
myAdapter.SelectCommand = myCommand
myAdapter.Fill(myDataSet)

2.5、绑定datagrid:
displayDataGridView.DataSource = myDataSet.Tables(0)

3、获得服务器和数据库连接字符串信息:
providerNameTextLabel.Text = "Provider: " & myConnectionSettings.ProviderName.ToString()
connectionStringLabel.Text = "ConnectString:" & myConnectionSettings.ConnectionString.ToString()

4、完整的代码如下:
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.Data.Common
Imports System.Configuration
Imports System.Diagnostics

Public Class factoryClassesForm
Private Sub getDataButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles getDataButton.Click
Try
'' Get the name of the database we are going to use
Dim myName As String = providerComboBox.SelectedItem.ToString()
'' Get the connection settings from the configuration file based on the name selected
'' in the ComboBox
Dim myConnectionSettings As ConnectionStringSettings = ConfigurationManager.ConnectionStrings(myName)
'' Create an instance of the DbProviderFactory by using the Provider name in the config file
Dim myProvider As DbProviderFactory = DbProviderFactories.GetFactory(myConnectionSettings.ProviderName)
'' Create the connection from the DbProvider factory, this code does not need to change for
'' for different providers
Dim myConnection As DbConnection = myProvider.CreateConnection()
'' Get the connection string from the connectionsettings
'' This gets us the specific provider by which we will connect
myConnection.ConnectionString = myConnectionSettings.ConnectionString
'' Open the connection
myConnection.Open()
'' now we can create the DataAdapter and then create a command
Dim myAdapter As DbDataAdapter = myProvider.CreateDataAdapter()
Dim myCommand As DbCommand = myProvider.CreateCommand()
'' Create the DataSet so that we can populate the datagrid
Dim myQuery As String = "SELECT * FROM SampleData"
Dim myDataSet As DataSet = New DataSet()
myCommand.Connection = myConnection
myCommand.CommandText = myQuery
myAdapter.SelectCommand = myCommand
myAdapter.Fill(myDataSet)
displayDataGridView.DataSource = myDataSet.Tables(0)
'' with other provider and connection string information
providerNameTextLabel.Text = "Provider: " & myConnectionSettings.ProviderName.ToString()
connectionStringLabel.Text = "ConnectString:" & myConnectionSettings.ConnectionString.ToString()
Catch ex As Exception
MessageBox.Show("There was an error retrieving data. Please try again.", "Alert")
End Try
End Sub

Private Sub factoryClassesForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
providerComboBox.SelectedIndex = 0
End Sub

End Class

5、运行后的效果如图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐