public
class
basesettings
//settingfilename is a file whose extension is .xml
private
string settingfilename
else
.xml"
, name));
}}}public
basesettings
(string settingname)
//build up a dataset ——— the introduction of dataset are below the code
//build up four datatable,which are int,double,bool,string
private
void
setupdataset()
; tb.columns[1]
.allowdbnull =
false;}
}public
virtual
bool
load()
public
virtual
bool
load
(string filepath)
catch
(exception ex)
dataset dstmp =
newdataset()
;try
catch
(exception ex)
//合併兩個dataset
ds.merge
(dstmp)
;updatefromdatabase()
;return
settingstoproperties
(this
,this);
}if(file.
exists
(filepath)
)catch
(exception ex)
//合併兩個dataset
ds.merge
(dstmp)
;updatefromdatabase()
;return
settingstoproperties
(this
,this);
}return
false;}
//write the contents of src to dst
private
void
decompressstream
(stream src,
stream dst)}}
//作用: 將dataset裡的資料同步到4個dictionary裡
public
void
updatefromdatabase()
tb = ds.tables[stringtablename]
;foreach
(datarow row in tb.rows)
tb = ds.tables[booltablename]
;foreach
(datarow row in tb.rows)
tb = ds.tables[doubletablename]
;foreach
(datarow row in tb.rows)
}//將引數讀到屬性中
public
static
bool
settingstoproperties
(basesettings settings,
object obj)})
;return res ==1;
}//獲取obj裡面的所有特性屬性
public
static list
getconfigproperties
(object obj)
}foreach
(propertyinfo pi in obj.
gettype()
.getproperties()
)}return pis;
}//將pi這個屬性的值在setting中的值更新到pi中
public
static
bool
settingtoproperty
(basesettings settings,
string parentname,
object obj,
propertyinfo pi)
", parentname, pi.name);if
(pi.propertytype ==
typeof
(int))
}else
if(pi.propertytype ==
typeof
(double))
}else
if(pi.propertytype ==
typeof
(string))
}else
if(pi.propertytype ==
typeof
(bool))
}return
false;}
//在對應列表中找paraname的
public
int?
getintvalue
(string paraname)
public
double
?getdoublevalue
(string paraname)
public
string
getstrin**alue
(string paraname)
public
bool
?getboolvalue
(string paraname)
}
dataset類是ado.net中最核心的成員之一(ado.net是.net framework sdk中用以運算元據庫的總稱)。dataset可以看作是乙個資料容器,從資料庫總抽取的資料可以存放在dataset裡面,也就相當與乙個快取區。
各種.net開發平台開發語言開發資料庫應用程式,一般都不會直接對資料庫進行操作,而是先完成資料連線和通過資料介面卡填充dataset的物件,然後客戶端在通過讀取dataset來獲取資料;相反也是一樣,若是更新資料,是先對dataset進行更新,最後同步dataset和資料庫。
dataset有三大特性:
dataset結構:
dataset——datatable——row colunm
c 在PropertyGrid上顯示類的屬性
當我們使用propertygrid控制項時,平時用的都是常見的型別如 int,string,bool通過如下 可以將這個類的屬性顯示在propertygrid public partial class form1 form public class student set private int s...
PropertyGrid中的列舉顯示為中文
propertygrid中的列舉顯示為中文 在系統開發中,經常會使用propertygrid來修改或者展示某個物件的屬性,如果類中定義了列舉,在展現的時候缺省會展示列舉的項或者列舉值,但是這並不是我們想要的。使用者使用的時候並不清楚該項代表的意思。之前介紹過列舉顯示中文的一篇文章,大家可以看下,列舉...
WPF中實現PropertyGrid的三種方式
由於wpf中沒有提供propertygrid控制項,有些業務需要此類的控制項。這篇文章介紹在wpf中實現propertygrid的三種方式,三種方式都是俺平時使用時總結出來的。第一種方式 使用windowsform的propertygrid控制項。用過wpf的童鞋都曉得,可以通過windowsfor...