瀏覽單個文章
vxr
Registered User
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

引用:
作者企Gre
vxr大大

小小不同@@ 大致是一樣!!
那小小不同就是讓我死的關鍵點了! 哈哈

這是OO的東西..
你必須要對OO基礎有所熟悉..
我舉個代碼的例子吧...
using System;
using System.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;

namespace WA_ADONET
{
public partial class usingsqldataprovider : System.Web.UI.Page
{
private const string DATA_PROVIDER_NAME = "System.Data.SqlClient";
private const int CONNECTION_STRING_INDEX = 1;

protected void Page_Load(object sender, EventArgs e)
{
string connString = ConfigurationManager.ConnectionStrings[CONNECTION_STRING_INDEX].ConnectionString;

DbProviderFactory dbProvider = DbProviderFactories.GetFactory(DATA_PROVIDER_NAME);
DbConnection dbConnection = dbProvider.CreateConnection();
DbCommand dbCommand = dbProvider.CreateCommand();
DbDataAdapter dbDataAdapter = dbProvider.CreateDataAdapter();
DataSet dataSet = new DataSet();

dbConnection.ConnectionString = connString;

dbCommand.Connection = dbConnection;
dbCommand.CommandText = "SELECT TOP 10 * FROM Mail ORDER BY CDATE DESC";

dbDataAdapter.SelectCommand = dbCommand;
dbDataAdapter.Fill(dataSet);
//GvMails is a GridView component
GvMails.DataSource = dataSet.Tables[0];
GvMails.DataBind();
}
}
}

這是一個使用微軟內建的factory(自.NET 2.0後的provider模型)..
DbConnection dbConnection = dbProvider.CreateConnection();
DbCommand dbCommand = dbProvider.CreateCommand();
DbDataAdapter dbDataAdapter = dbProvider.CreateDataAdapter();
這三段代碼你可以看出...
DbConnection, DbCommand, DbDataAdapter都是微軟提供的頂層抽象...
這些都是公開的...
允許給相關廠商去實做這些抽象...
你可以依循去查這些類別...
到MSDN網站...
有關Db的部分..
factory是極為常見的一個設計..
因為它可以用作instance產生器...
舊 2011-10-23, 10:59 PM #27
回應時引用此文章
vxr離線中