关于强类型DataSet,自己也不清楚是什么,视频上直接说可以方便实用那就先背着,慢慢理解.
关于强类型DataSet其实现原理为:
假设我有一个表My_Users(UID,UNAME.UPASSWORD.UMESSAGE)
则一个强类型DataSet类内容类似为:
//下面类不完整无法编译通过只是个便于原理的理解,个个成员属性的赋值都应该是从数据库中得到的而不是value;
class My_UsersDataRow : DataRow { public int UID { get { return Convert.ToInt32(this["UID"]; } set { this["UID"] = value; }
} public int UNAME { get { return Convert.ToString(this["UNAME"]); } set { this["UNAME"] = value; }
} public int UPASSWORD { get { return Convert.ToString(this["UPASSWORD"]); } set { this["UPASSWORD"] = value; } } public int UMESSAGE { get { return Convert.ToString(this["UMESSAGE"]); } set { this["UMESSAGE"] = value; } } } 这样创建一个实例对象My_UsersDataRow datarow =new My_UsersDataRow();
那么就可以直接访问数据库表中对应的字段数据如:datarow.UID;datarow.UNAME;datarow.UPASSWORD;
VS中为我们提供了强类型的DataSet方法使用方法为:
项目右键添加-->新建相-->Data-->数据集(取名为FirstDataSet.xsd)将数据库服务器中的表My_Users直接拖进FirstDataSet.xsd,就得到强类型DataSet:My_UsersTableAdapter.然后vs自动创建一个类似上述类,这样就可以直接使用了如:
//创建一个保存和察看数据库返回信息的对象。(DataSet将数据读出存到程序内存中) My_UsersTableAdapter u_table = new My_UsersTableAdapter(); //得到数据表 Login.UI.FirstDataSet.My_UsersDataTable usersdata = u_table.GetData(); for (int i = 0; i < usersdata.Count; i++) { //逐行获取数据表中的内容 My_UsersDataRow usersrow =usersdata[i]; MessageBox.Show(usersrow.UNAME); }
强类型DataSet就是代码自动生成的某种机制,使用的时候不要忘了给表设置主见,修改了结构和数据后要邮件xsd图形进行重新配置,主要是配置查询分析器 .