實體 實體集及其運用

2021-09-07 11:55:13 字數 3815 閱讀 3565

一、實體

在c#中

寫法(1):

public  class userinfo

}

寫法(2):

public class userinfoentity

』取值[get……end get,是可省的]

set 』賦值[set……end set,是可省的]

} }

總結,簡單比較。方法(一)與方法(二)等價,非常明顯。寫法(一)更簡便。

(二)、vb.net

中寫法為:

public class userentity

private _userid as string 』定義欄位名

public property userid() as string 』定義屬性項

get 』取值[get……end get。是可省的]

return _userid

end get

set(value as string) 』賦值[set……end set,是可省的]

_userid = value

end set

end property

end class

說明:上面寫了列舉了乙個名稱為userentity的實體,其包含乙個屬性名為_userid的userid屬性項。

在現實運用中,一般都會有多個項。僅僅需定義欄位名和相應的屬性項(依據取值和賦值的須要)就可以。

將乙個物件的屬性集封裝成實體,通過賦值、取值過程。實現乙個物件屬性值的傳遞。

如乙個學生(是乙個物件)有學號studentid(20145113145)、姓名name(王五)、性別***、(男)班級class(火箭班)、身份證號id(110120199008122014)等屬性。

(三)、使用方法:

c#、vb.net中使用方法同樣。取值時直接 = userentity.userid ;賦值時userentity.userid = value(value為設定值)。

二、實體集

實體集,就是具有同樣屬性項的一類實體的集合。

實體與實體集的關係,就像一名學生與乙個班級的關係。

在資料表中,一行。承載乙個物件的一套資訊(屬性集),即是乙個實體。多行。則是一組物件的屬性集。

僅僅須要傳遞乙個個體資訊(表中的一行),用實體就能夠滿足,但假設要傳乙個群體的資訊(一張表中的多行資訊),則考慮用實體集。

(一)實體集的表示有**和泛型。

將**轉化成實體集(vb.net

)的方法為:

datatable資料型別轉化為泛型(實體集)

imports system.collections.generic          '引用泛型集合

imports system.reflection '引用反射,用它的propertyinfo

』將實體組裝成實體集的方法

'將『datatable型別』轉化為泛型『實體集』(『實體集合』)

public class genericcollection

public shared function convertolist(of t as )(byval sqldatatable as datatable) as list(of t)

dim mylist as new list(of t) '例項化乙個泛型集合

dim mytype as type '定義乙個型別名_變數

mytype = gettype(t) '用於放置型別

dim sqldatarow as datarow '查詢表的行集

dim tmpname as string = string.empty '定義乙個暫時變數

'遍歷datatable的全部資料行

for each sqldatarow in sqldatatable.rows

dim myt as new t '例項化型別

'定義乙個屬性集合

dim propertys() as propertyinfo

propertys = myt.gettype().getproperties()

'定義一條屬性

dim pr as propertyinfo

'遍歷全部屬性

for each pr in propertys

tmpname = pr.name '將屬性名賦給變數容器

'檢查datatable是否包括此列。(列名=屬性名)

if (sqldatatable.columns.contains(tmpname)) then

'推斷是否可編輯

if (pr.canwrite = false) then

continue for

end if

'依據屬性名獲取物件

dim value as object = sqldatarow(tmpname)

'推斷物件內體是否為空

if (value.tostring <> dbnull.value.tostring) then

pr.setvalue(myt, value, nothing) '利用反射設定屬性

end if

end if

next

mylist.add(myt) '加入型別集合

next

return mylist '返回泛型集合

end function

end class

(二)、實體集能夠這樣用

在程式中對資料的查詢、驗證、使用是常有的事。對資料庫的訪問也是必定的。但資料的訪問是件耗時的事,尤其面對大資料,在多使用者進行操作與共享的時候。資料訪問要是能降低那是關乎效能的事。

實體集合mylist as liss(of t_entity)

dim k as integer = 1                                    '定義並初始化為1

dim resumecash as double '定義變數

mylist = select_bll.select(t_entity)

if mylist.count > 0 then '防止為空

do while k < mylist.count or k = mylist.count

dim new_entity as entity.mainentity = mylist.item(k - 1)

if new_entity.style = "固定使用者" then '設定條件。指定當中「固定使用者」字段,選擇符合條件的記錄。

cardnum = cardnum + 1 '累加符合條件記錄數 fastencash = fastencash + carditem.cash '固定使用者銷售金 end if resumecash = resumecash + new_en.consumecash '累加消費金額 k = k + 1 loop end if

說明:上述**能夠得到的資訊有,對映到表中相當於,表的行數(實體數)、指定一實行的指定記錄、符合條件的字段數、任一欄位的內容。

通過這樣的形式的資訊挖掘,能夠降低多資料庫的負荷。在多使用者進行操作時能降低訪問次數。就降低了執行緒、減輕了排隊造成的擁堵。

運用擴充套件實體構建鍊錶

由於控制代碼在應用程式中可以唯一標示乙個實體,因為它是由資料庫決定的,不會由於實體的變動而導致變化。物件id可能由於多次重複開啟而改變。但是不同的實體可能有相同的乙個控制代碼 acdbhandle adsnametohandler ads nameen handle轉換成acdbobject物件 由...

DTD實體之 引數實體

僅僅在dtd中使用的解析實體稱為引數實體。它使我們能夠簡便地引用或修改dtd中常用的結構,我們只需維護一處 與逐一修改dtd中出現每個結構相比,這種方法簡單得多,但是當我們打算擴充套件結構時,仍然需要編輯dtd。引數實體宣告由以下幾部分組成 entity關鍵字 百分號 名稱和替換值。例如 上面的置換...

mysql實體 mysql實體關係

實體關係 表設計1 1 兩個實體表內,存在相同的主鍵字段 如果記錄的主鍵值等於另乙個關係表內記錄的主鍵值,則兩條記錄的對應為一一對應 優化上稱為垂直分割 1 n乙個實體對應多個其他實體 乙個班級對應多個學生 設計 在多的那段增加乙個字段,用於指向該實體所屬的另外實體的標識 m n多對多 設計典型的利...