日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

正文

家庭視頻監(jiān)控系統(tǒng)(6)

C#項目開發(fā)案例全程實錄(第2版) 作者:明日科技


1.4 公共類設(shè)計

在開發(fā)項目中以類的形式來組織、封裝一些常用的方法和事件,不僅可以提高代碼的重用率,也大大方便了代碼的管理。本系統(tǒng)中創(chuàng)建了5個公共類,分別為DataCon類、DataOperate類、SoftReg類、VideoOperate類和PelcoD類。其中,DataCon類用來訪問Microsoft Access 2003數(shù)據(jù)庫,DataOperate類用來操作Microsoft Access 2003數(shù)據(jù)庫,SoftReg類用來實現(xiàn)生成機器碼和系統(tǒng)注冊功能,VideoOperate用來封裝視頻采集卡中的各種枚舉和API函數(shù),PelcoD類用來實現(xiàn)Pelco-D協(xié)議。在程序開發(fā)時,窗體只需調(diào)用相應(yīng)的方法即可。下面分別對這5個類中的方法進行詳細介紹。

1.4.1 DataCon類

DataCon類中,因為本系統(tǒng)使用的是Microsoft Access 2003數(shù)據(jù)庫,所以在命名空間區(qū)域內(nèi)引用using System.Data.OleDb來連接數(shù)據(jù)庫。該類中定義了一個getCon()方法,該方法用來使用OleDbConnection對象連接Access數(shù)據(jù)庫。GetCon()方法的主要代碼如下:

例程01 代碼位置:光盤\TM\01\VWMS\VWMS\CommonClass\DataCon.cs

public OleDbConnection getCon()

{

string strDPath = Application.StartupPath;

string strDataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="

+ strDPath.Substring(0, strDPath.LastIndexOf("\\")).Substring(0, strDPath.Substring(0, strDPath. LastIndexOf("\\")).LastIndexOf("\\")) + "\\DataBase\\db_VWMS.mdb";

OleDbConnection oledbCon = new OleDbConnection(strDataSource);

return oledbCon;

}

代碼貼士

OleDbConnection:用來連接OLEDB數(shù)據(jù)源。

1.4.2 DataOperate類

DataOperate類中,首先實例化datacon、oledbcon、oledbcom、oledbda和ds 5個對象。其中,datacon對象用來調(diào)用自定義類DataCon類中的方法,oledbcon對象用來連接Access數(shù)據(jù)庫,oledbcom對象用來執(zhí)行Command命令語句,oledbda對象表示用于填充DataSet數(shù)據(jù)集和更新Access數(shù)據(jù)庫的一組數(shù)據(jù)命令和一個數(shù)據(jù)庫連接,ds對象為數(shù)據(jù)集。實例化datacon、oledbcon、oledbcom、oledbda和ds這5個對象的關(guān)鍵代碼如下:

例程02 代碼位置:光盤\TM\01\VWMS\VWMS\CommonClass\DataOperate.cs

DataCon datacon = new DataCon(); //實例化DataCon類對象

OleDbConnection oledbcon;  //實例化OleDbConnection類對象,用來連接Access數(shù)據(jù)庫

OleDbCommand oledbcom; //實例化OleDbCommand類對象,用來執(zhí)行SQL語句

OleDbDataAdapter oledbda;   //實例化OleDbDataAdapter類對象,用來執(zhí)行SQL語句,并記錄結(jié)果集

DataSet ds; //DataSet數(shù)據(jù)集

DataOperate類中自定義了getCom()和getDs()兩個方法,下面分別對它們進行介紹。

1.getCom()方法

getCom()方法為無返回值類型的自定義方法,主要用來執(zhí)行SQL語句,關(guān)鍵代碼如下:

例程03 代碼位置:光盤\TM\01\VWMS\VWMS\CommonClass\DataOperate.cs

public void getCom(string strCon)

{

oledbcon = datacon.getCon();

oledbcom = new OleDbCommand(strCon, oledbcon);

oledbcon.Open();

oledbcom.ExecuteNonQuery();

oledbcon.Close();

}

代碼貼士

Open:該方法用來打開數(shù)據(jù)庫連接。

ExecuteNonQuery:執(zhí)行Command命令。

Close:該方法用來關(guān)閉數(shù)據(jù)庫連接。

2.getDs()方法

getDs()方法用來執(zhí)行SQL語句,并返回一個DataSet類型的數(shù)據(jù)集對象。此方法中,首先調(diào)用DataCon類中的getCon ()方法實現(xiàn)Access數(shù)據(jù)庫連接,然后使用OleDbDataAdapter類對象填充DataSet數(shù)據(jù)集。關(guān)鍵代碼如下:

例程04 代碼位置:光盤\TM\01\VWMS\VWMS\CommonClass\DataOperate.cs

public DataSet getDs(string strCon,string tbname)

{

oledbcon = datacon.getCon();   //獲得數(shù)據(jù)庫連接

oledbda = new OleDbDataAdapter(strCon, oledbcon); //實例化OleDbDataAdapter對象

ds = new DataSet(); //實例化DataSet對象

oledbda.Fill(ds, tbname); //填充DataSet數(shù)據(jù)集

return ds;

}

1.4.3 SoftReg類

SoftReg類中自定義了GetDiskVolumeSerialNumber()、getCpu()、getMNum()和getRNum() 4個方法,下面分別對它們進行介紹。

1.GetDiskVolumeSerialNumber()方法

GetDiskVolumeSerialNumber()方法用來使用ManagementObject對象的GetPropertyValue()方法獲得本機的硬盤標識號,其實現(xiàn)代碼如下:

例程05 代碼位置:光盤\TM\01\VWMS\VWMS\CommonClass\SoftReg.cs

//取得設(shè)備硬盤的卷標號

public string GetDiskVolumeSerialNumber()

{

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"d:\"");

disk.Get();

return disk.GetPropertyValue("VolumeSerialNumber").ToString();

}

代碼貼士

ManagementClass:公共信息模型(CIM)管理類,它是一個WMI類,通過該類的成員,可以使用特定的WMI類路徑訪問WMI數(shù)據(jù)。

ManagementObject:表示W(wǎng)MI實例。

GetPropertyValue():該方法用來獲取某屬性值的等效訪問器。

2.getCpu()方法

getCpu()方法用來獲得本機的CPU序列號,其實現(xiàn)代碼如下:

例程06 代碼位置:光盤\TM\01\VWMS\VWMS\CommonClass\SoftReg.cs

//獲得CPU的序列號

public string getCpu()

{

string strCpu = null;

ManagementClass myCpu = new ManagementClass("win32_Processor"); //指定win32_Processor管理類

ManagementObjectCollection myCpuConnection = myCpu.GetInstances();

foreach (ManagementObject myObject in myCpuConnection)

{

strCpu = myObject.Properties["Processorid"].Value.ToString(); //獲得CPU序列號

break;

}

return strCpu;

}


上一章目錄下一章

Copyright ? 讀書網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號