引用:
|
作者企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產生器...