为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

如何建立DLL文件

2011-09-26 16页 doc 67KB 46阅读

用户头像

is_193445

暂无简介

举报
如何建立DLL文件如何建立DLL文件 对RichtextBox 控件选择文本的操作 获取数据表中字段的描述信息 获取DataSet对象中表信息 与数据库的相关操作 这是万能搜索模块的建立 一 VS2008生成dll文件的方法 有两种方法: 1:傻瓜式操作 打开VS2008,依次点击:菜单->文件->新建项目->项目类型visual C#(这里假设为该项目所取的名字是DllBuild)->类库(注意必须是类库),即新建一个由纯.cs类库文件组成的程序集,写好代码之后(例如写了一个名为DllTest.cs的类,该类的name...
如何建立DLL文件
如何建立DLL文件 对RichtextBox 控件选择文本的操作 获取数据中字段的描述信息 获取DataSet对象中表信息 与数据库的相关操作 这是万能搜索模块的建立 一 VS2008生成dll文件的方法 有两种方法: 1:傻瓜式操作 打开VS2008,依次点击:菜单->文件->新建项目->项目类型visual C#(这里假设为该项目所取的名字是DllBuild)->类库(注意必须是类库),即新建一个由纯.cs类库文件组成的程序集,写好代码之后(例如写了一个名为DllTest.cs的类,该类的namespace取名为DllTestNS), 再依次点击:菜单->生成->生成DllBuild,这样你的DllBuild/DllBuild/bin/Debug文件夹或者 DllBuild/DllBuild/obj/Debug文件夹里便会自动生成dll文件啦,该文件名称与项目名称一致,即为DllBuild.dll。 2:使用VS命令行 依次点击:开始->运行,输入cmd,在打开的命令行窗口中输入:cd \,按回车,输入下面一行命令: cd c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0>csc /target:library /out:d:\Pager.dll d:\Pager.cs 按回车,这样,便将d:\Pager.cs 文件编译为dll文件并保存为d:\Pager.dll。 在这里有可能会报错,原因是csc.exe文件找不到。此时只需打开资源浏览器explorer,在“我的电脑”中搜索“csc.exe”文件即可,比如我的csc.exe文件便是在:C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe。为了不至于每次编译dll时都要输入如此长的VS命令行路径,我们可以将该路径添加到系统环境变量中。具体的添加方法请见:http://hi.baidu.com/yuemingfeng/blog/item/f3bf3c24b86db46934a80fcc.html 。当添加完环境变量后,现在要将.cs文件编译为dll文件便十分方便: 点击“开始”->“运行”,输入: csc /target:library /out:d:\Pager.dll d:\Pager.cs 这样便直接进行编译。 二 dll文件的引用及动态加载 2.1 引用dll文件 c++文件必须有头文件和lib文件方能编译通过,在运行时还必须调用相应的dll文件;而c#则直接将头文件和lib文件都封装进dll文件中,因此,c#编程无需再引入这两个文件,但是在运行时或者编译时很多时候都需要引用dll文件。 在上一步,我们生成(Build)了名为DllBuild的项目,并生成了DllBuild.dll文件,现在我们重新新建一个类型为Console Application(控制台应用程序)的项目,名为DllInvoke, 新建好项目之后,从资源浏览器中打开该项目,依次打开DllInvoke\DllInvoke\bin\Debug\,将刚才生成的 DllBuild.dll文件复制到Debug目录下,同时打开DllInvoke\DllInvoke\DllInvoke.csproj文件(右击, 用记事本打开),打开后如下: Debug AnyCPU 8.0.50727 2.0 {EE4DDE2F-AC60-4A50-A988-AB936EB00103} Exe Properties DllInvoke DllInvoke true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 可 以看到,该文件主要描述了改项目的一些系统配置和属性,例如项目名称和根命名空间名称、调试方式等等。由于要引用dll文件,因此我们需要在该xml格式 的文件中添加关于该dll文件的描述信息,添加到节点中(即上文字体颜色为绿色的地方),添加后,该处内容变为: False ..\..\DllBuild.dll 文字处理Richtextbox控件2010-09-22 07:02使用rich textbox控件进行字处理: richtextbox保存的文档格式是RTF格式的文档,当然也可以保存纯文本,但没有了高级的格式效果。 richtextbox对象的seltext属性:文本框中当前被选定的内容(鼠标拖动)。 补充:commondialog对象的flags属性:设置对话框的内容选项(查看相关资料) form窗体的resize事件:当窗体改变其尺寸时发生。常在此事件中修改其他控件的尺寸,如text(文本框)的大小自动匹配。例: Private Sub Form_Resize() RichTextBox1.Height = Form1.ScaleHeight (FORM的工作区高度) RichTextBox1.Width = Form1.ScaleWidth (FORM的工作区宽度) End Sub 利用richtextbox的seltext可以对选定的文本进行各种各样的操作。如全部变成大写: richtextbox1.seltext=ucase(richtextbox1.seltext) 同样也可以用变小写的lcase将它全部变成小写。 对richtextbox内的选定内容(richtextbox.seltext)进行字体改变,用commondialog的显示字体对话框(showfont)对话框。字体对话框中包含了"字体大小fontsize""字体名称fontname,""字体颜色color""是否选择粗体FONTBOLD""是否选斜体Fontitalic""是否选择下划线fontunderline""是否选择删除线fontstrikethru" 多种属性供用户选择,要与richtextbox对象的相关属性一一对应,举一个例子说明: Private Sub mnuziti_Click() "字体"菜单代码 CommonDialog1.CancelError = True 出错处理 On Error GoTo lxn: CommonDialog1.Flags = cdlCFEffects Or cdlCFBoth 设定选项(必要), CommonDialog1.ShowFont RichTextBox1.SelFontName = CommonDialog1.FontName 以下是一一对应的关系 RichTextBox1.SelFontSize = CommonDialog1.FontSize RichTextBox1.SelColor = CommonDialog1.Color RichTextBox1.SelBold = CommonDialog1.FontBold RichTextBox1.SelItalic = CommonDialog1.FontItalic RichTextBox1.SelUnderline = CommonDialog1.FontUnderline RichTextBox1.SelStrikeThru = CommonDialog1.FontStrikethru lxn: End Sub 学会使用WINDOWS的剪贴板:在VB中连接起WINDOWS剪贴板,需要用Clipboard对象的settext方法和gettext方法(clipboard对象不要在程序中另行创建),settext是将文本复制到剪贴板,格式: Clipboard.settext 文本内容 Clipboard.SetText RichTextBox1.SelRTF (selRTF是选定RTF文档内容) gettext方法是从剪贴板粘贴文本,格式: 变量=clipboard.gettext RichTextBox1.SelRTF = Clipboard.GetText richtextbox对象的find方法:查找文本内的某字符串。格式: richtextbox1.find(要查找字符串,查找范围起点,查找范围终点,参数选项) 查找范围缺省为整个文本,参数选项有三个:rtfWholeWord(整字查找), rtfMatchCase(区分大小写),rtfNoHighlight(加亮找到的字符串) 用find方法找到后,还要用span方法选中查到的单词。 ★ richtextbox的loadfile方法:打开一个RTF或TXT文件。 richtextbox1.loadfile 路径及文件名,rtfRTF(或rtfText) RichTextBox1.LoadFile CommonDialog1.FileName, rtfText 如何在关闭前确定有未保存的修改,并提醒用户进行保存,需要用richtextbox的change事件,只要文本一改变,就触发该事件。 Richtextbox控件还有以下一些主要属性方法事件: Selchange事件:当前选择的文本发生改变或插入点发生改变时触发。 SaveFile方法:将控件中的文字内容存入文件。格式: Richtextbox1.SaveFile 文件名,0或1 0表示rtfRTF格式化文本,1表示rtfText纯文本。 SelPrint方法:将选中文本发送到打印机(如果当前没有选中文本,则将全部文本发送到打印机)。 text属性:控件中的文本。 textRTF属性:控件中的格式化文本(含隐藏的格式化信息)。 ★ 如何将繁体字文本转换为简体字文本?或将简体转换为繁体?用ActiveX的Big5óGB控件,使用很简单,只要在部件中添加,然后在代码中使用: 繁体化简体(BigToGB方法)--简体文本=Big2GB1.BigToGB(繁体文本)。 如:Text1.Text = Big2GB1.BigToGB(Text1.Text) 简体化繁体(GBToBig方法)--繁体=Big2GB1.GBToBig(简体) 如:Text1.text=Big2GB1.GBToBig(Text1.Text) RichTextBox控件可用来输入和编辑文本,该控件除具有TextBox控件所有功能,还能设定文字颜色、字体和段落格式,支持字符串查找功能,支持rtf格式等功能 。这里只介绍RichTextBox控件新增属性、事件和方法,和TextBox控件相同部分就不介绍了,可参见3.6节。RichTextBox控件常用属性、事件和方法如下: ? 属性Dock:很多控件都有此属性,它设定控件在窗体中的位置,可以等于枚举类型DockStyle的成员None、Left、Right、Top、Bottom或Fill,分别表示控件可 在窗体的任意位置、左侧、右侧、顶部、底部或充满客户区。在属性窗口中,属性Dock的值用周边4个矩形,中间一个矩形的图形来表示。 ? 属性SelectedText、SelectionLength、SelectionStart:参见TextBox控件属性。 ? 属性SelectionFont:如果已选定文本,得到或设置所选文本使用的字体,如果未选定文本,获取当前插入点字符采用的字体或设置以后输入字符采用的字体。 ? 属性SelectionColor:如果已选定文本,获取或设置所选文本的颜色,如果未选定文本,获取当前插入点字符的颜色或设置以后输入字符的颜色。 ? 属性Lines:字符串数组,记录输入到RichTextBox控件中的所有文本,每两个回车之间的字符串是数组的一个元素。 ? 属性Modified:记录用户是否已修改控件中的文本内容。如已修改,自动设置为true,。 ? 事件SelectionChange:控件中选定文本发生变化时产生的事件。 ? 事件TextChanged:RichTextBox控件内的文本内容被改变时发生的事件。 ? 方法Clear():清除RichTextBox控件中用户输入的所有内容,即清空属性Lines。 ? 方法Copy()、Cut()、Paste():实现RichTextBox控件的剪贴板功能。 ? 方法SelectAll():选择RichTextBox控件中的所有文本。 ? 方法Find():实现查找功能。从第二个参数指定的位置,查找第一个参数指定的字符串,返回找到的第一个匹配字符串的位置,返回负值,表示未找到匹配字符 串。第三个参数指定查找的一些附加条件,可以是枚举类型RichTextBoxFinds的成员:MatchCase(区分大小写)、Reverse(反向查找)等。方法Find()允许有1个、2 个或3个参数。 ? 方法SaveFile()和LoadFile():存取文件方法,有2个参数,参数1是要存取文件的全路径和文件名。参数2是文件类型: RichTextBoxStreamType.UnicodePlainText (Unicode编码的文本流),RichTextBoxStreamType.RichText(Rtf格式流),RichTextBoxStreamType.PlainText(纯文 本)。注意存取文件的类型必须一致。 ? 方法Undo():撤消RichTextBox控件中的上一个编辑操作。 77 ? 方法Redo():重新完成RichTextBox控件中上次撤消的操作。 描述:DataSet对象是支持ADO.NET的断开式、分布式数据数据的核心对象。DataSet对象是数据数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型。它可以用于多种不同的数据源,用于XML数 DataSet对象是支持ADO.NET的断开式、分布式数据数据方案的核心对象。DataSet对象是数据数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型。它可以用于多种不同的数据源,用于XML数据数据,或用于管理应用程序本地的数据数据。DataSet对象表示包括相关表、约束和表间关系在内的整个数据数据集。 DataTableCollection : 一个ADO.NET DataSet对象包含DataTable对象所表示的零个或更多个表的集合。DataTableCollection类包含DataSet对象中的所有DataTable对象。 DataTable对象在System.Data命名空间中定义,表示内存驻留数据数据的单个表。其中包含由 DataColumnCollection类表示的列集合以及由ConstraintCollection类表示的约束集合,这两个集合共同定义表的架构。DataTable对象还包含DataRowCollection类所表示的行的集合,而DataRowCollection类则包含表中的数据数据。除了其当前状态之前,DataRow对象还会保留其当前版本和初始版本,以标识对行中存储的值的更改。 DataRelationCollection : DataSet对象在其DataRelationCollection类中包含关系。关系由DataRelation对象来表示,它使一个DataTable对象中的行与另一个DataTable对象中的行相关联。关系类似于可能存在于关系数据库中的主键列和外键列之间的联接路径。DataRelation对象标识DataSet对象中两个表的匹配列。关系使用户能够在DataSet对象中从一个表导航至另一个表。DataRelation对象的基本元素为关系的名称、相关表的名称以及每个表中的相关列。关系可以通过一个表的多个列来生成,方法是将一组 DataColumn对象指定为键列。将关系添加到DataRelationCollection类中之后,可以选择添加 UniqueKeyConstraint对象和ForeignKeyConstraint对象,在对相关列的值进行更改时,强制执行完整性约束。 ExtendedProperties : DataSet对象、DataTable对象和DataColumn对象全部具有ExtendedProperties属性。ExtendedProperties属性是一个PropertyCollection对象,可以在其中加入自定义信息,例如用于生成结果集的SELECT语句或生成数据数据的时间。ExtendedProperties集合与DataSet对象的架构信息一起持久化。从多个DataAdapter填充DataSet 可以将任意数量的DataAdapter对象与DataSet对象一起使用。每个DataAdapter对象都可用于填充一个或多个DataTable对象并将更新解析回相关数据源。DataRelation对象和Constraint对象可以在本地添加到DataSet对象,这样,用户就可以使来自多个不同数据源的数据数据(如Sql Server与Access)相关联。 DataSet对象常用属性说明如下所示: CaseSensitive:获取或设置一个值,该值指示DataTable对象中的字符串比较是否区分大小写。 Container:获取组件的容器 DataSetName:获取或设置当前DataSet对象的名称 DefaultViewManager:获取DataSet对象所包含的数据数据的自定义视图,以允许使用自定义的DataViewManager:属性进行筛选、搜索和导航。 DesignMode:获取指示组件当前是否处于设计模式的值 EnforceConstraints:获取或设置一个值,该值指示在尝试执行任何更新操作时是否遵循约束规则 ExtendedProperties:获取与DataSet对象相关的自定义用户信息的集合 HasErrors:获取一个值,指示在此DataSet对象中的任何DataTable对象中是否存在错误 IsInitialized:获取一个值,该值表明是否初始化DataSet对象 Locale:获取或设置用于比较表中字符串的区域设置信息 Namespace:获取或设置DataSet类的命名空间 Prefix:获取或设置一个XML前缀,该前缀是DataSe类的命名空间的别名 Relations:获取用于将表链接起来并允许从父表浏览到子表的关系的集合 RemotingFormat:为远程处理期间使用的DataSet对象获取或设置 SerializationFormat属性 SchemaSerializationMode:获取或设置DataSet对象的SchemaSerializationMode属性 Site:获取或设置DataSet对象的System.ComponentModel.Isite接口 Tables:获取包含在DataSet对象中的表的集合 DataSet对象常用方法说明如下所示: AcceptChanges():提交自加载此DataSet对象或上次调用AcceptChanges方法以来对其进行的所有更改 BeginInit():开始初始化在窗体上使用或由另一个组件使用的DataSet对象。初始化发生在运行时 Clear():通过移除所有表中的所有行来清除任何数据数据的DataSet对象 Clone():复制DataSet对象的结构,包括所有DataTable对象架构、关系和约束。不要复制任何数据数据 Copy():复制该DataSet对象的结构和数据数据 CreateDataReader():为每个DataTable对象返回带有一个结果集的DataTableReader对象,顺序与Tables():集合中表的显示顺序相同 EndInit():结束在窗体上使用或由另一个组件使用的DataSet对象的初始化。初始化发生在运行时 GetChanges():获取DataSet对象的副本,该副本包含自上次加载以来或自调用AcceptChanges方法以来对该数据数据集进行的所有更改 GetHashCode():用作特定类型的哈希函数。GetHashCode方法适合在哈希算法和数据结构(如哈希表)中使用 GetObjectData():用序列化DataSet对象所需的数据数据填充序列化信息对象 GetService():获取IserviceProvider接口的实施者 GetType():获取当前实例的Type属性 GetXml():返回存储在DataSet对象中的数据数据的XML表示形式 GetXmlSchema():返回存储在DataSet对象中的数据数据的XML表示形式的XML架构 HasChanges():获取一个值,该值指示DataSet对象是否有更改,包括新增行、已删除的行或已修改的行 InferXmlSchema():将XML架构应用于DataSet对象 Load():通过所提供的 IdataReader接口,用某个数据源的值填充DataSet对象 Merge():将指定的DataSet对象、DataTable对象或DataRow对象的数组合并到当前的DataSet对象或 DataTable对象中。 ReadXml():将XML架构和数据数据读入DataSet对象 ReadXmlSchema():将XML架构读入DataSet对象 ReferenceEquals():确定指定的Object对象实例是否是相同的实例 RejectChanges():回滚自创建DataSet对象以来或上次调用DataSet.AcceptChanges方法以来对其进行的所有更改 Reset():将DataSet对象重置为其初始状态。子类应重写Reset方法,以便将DataSet对象还原到其原始状态 WriteXml():从DataSet对象写XML数据数据,还可以选择写架构 WriteXmlSchema():写XML架构形式的DataSet对象结构。 DataSet对象是支持ADO.NET的断开式、分布式数据数据方案的核心对象。DataSet对象是数据数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型。它可以用于多种不同的数据源,用于XML数据数据,或用于管理应用程序本地的数据数据。DataSet对象表示包括相关表、约束和表间关系在内的整个数据数据集。 DataTableCollection 一个ADO.NET DataSet对象包含DataTable对象所表示的零个或更多个表的集合。DataTableCollection类包含DataSet对象中的所有DataTable对象。 DataTable对象在System.Data命名空间中定义,表示内存驻留数据数据的单个表。其中包含由 DataColumnCollection类表示的列集合以及由ConstraintCollection类表示的约束集合,这两个集合共同定义表的架构。DataTable对象还包含DataRowCollection类所表示的行的集合,而DataRowCollection类则包含表中的数据数据。除了其当前状态之前,DataRow对象还会保留其当前版本和初始版本,以标识对行中存储的值的更改。 DataRelationCollection DataSet对象在其DataRelationCollection类中包含关系。关系由DataRelation对象来表示,它使一个DataTable对象中的行与另一个DataTable对象中的行相关联。关系类似于可能存在于关系数据库中的主键列和外键列之间的联接路径。DataRelation对象标识DataSet对象中两个表的匹配列。 关系使用户能够在DataSet对象中从一个表导航至另一个表。DataRelation对象的基本元素为关系的名称、相关表的名称以及每个表中的相关列。关系可以通过一个表的多个列来生成,方法是将一组 DataColumn对象指定为键列。将关系添加到DataRelationCollection类中之后,可以选择添加 UniqueKeyConstraint对象和ForeignKeyConstraint对象,在对相关列的值进行更改时,强制执行完整性约束。 ExtendedProperties DataSet对象、DataTable对象和DataColumn对象全部具有ExtendedProperties属性。ExtendedProperties属性是一个PropertyCollection对象,可以在其中加入自定义信息,例如用于生成结果集的SELECT语句或生成数据数据的时间。ExtendedProperties集合与DataSet对象的架构信息一起持久化。 从多个DataAdapter填充DataSet 可以将任意数量的DataAdapter对象与DataSet对象一起使用。每个DataAdapter对象都可用于填充一个或多个DataTable对象并将更新解析回相关数据源。DataRelation对象和Constraint对象可以在本地添加到DataSet对象,这样,用户就可以使来自多个不同数据源的数据数据(如Sql Server与Access)相关联。 DataSet对象常用属性如下表所示。 表 DataSet对象常用属性及说明 属性 说明 CaseSensitive 获取或设置一个值,该值指示DataTable对象中的字符串比较是否区分大小写 Container 获取组件的容器 DataSetName 获取或设置当前DataSet对象的名称 DefaultViewManager 获取DataSet对象所包含的数据数据的自定义视图,以允许使用自定义的DataViewManager属性进行筛选、搜索和导航 DesignMode 获取指示组件当前是否处于设计模式的值 EnforceConstraints 获取或设置一个值,该值指示在尝试执行任何更新操作时是否遵循约束规则 ExtendedProperties 获取与DataSet对象相关的自定义用户信息的集合 HasErrors 获取一个值,指示在此DataSet对象中的任何DataTable对象中是否存在错误 IsInitialized 获取一个值,该值表明是否初始化DataSet对象 Locale 获取或设置用于比较表中字符串的区域设置信息 Namespace 获取或设置DataSet类的命名空间 Prefix 获取或设置一个XML前缀,该前缀是DataSe类的命名空间的别名 Relations 获取用于将表链接起来并允许从父表浏览到子表的关系的集合 RemotingFormat 为远程处理期间使用的DataSet对象获取或设置 SerializationFormat属性 SchemaSerializationMode 获取或设置DataSet对象的SchemaSerializationMode属性 Site 获取或设置DataSet对象的System.ComponentModel.Isite接口 Tables 获取包含在DataSet对象中的表的集合 下面介绍几个主要的属性。 (1)DataSetName属性 获取或设置当前DataSet对象的名称 语法: public stringDataSetName { get; set; } 属性值:DataSet对象的名称。 示例: 获取DataSet对象的名称,程序代码如下。 DataSet dataSet= newDataSet("HyWork"); MessageBox.Show (dataSet.DataSetName); (2)Relations属性 获取用于将表链接起来并允许从父表浏览到子表的关系的集合。 语法: public DataRelationCollection Relations { get; } 属性值:包含一个DataRelation对象集合的DataRelationCollection对象。如果DataRelation对象不存在,将返回空集合。 示例: 通过DataSet对象的Relations属性将两个表关联起来实例化新的DataRelation对象,程序代码如下。 DataSet DS = newDataSet(); DataRelation relation = DS.Relations.Add("t_People",DS.Tables["t_People"].Columns["tb_PID"], DS.Tables["t_Class"].Columns["tb_PID"]); (3)Tables属性 获取包含在DataSet对象中的表的集合。 语法: public DataTableCollection Tables { get; } 属性值:此DataSet对象包含的DataTableCollection对象。如果DataTable对象不存在,将返回空集合。 示例: 通过DataSet对象的Tables属性数据集中所有数据数据表名称显示给用户,程序代码如下。 private void ShowTableName(DataSet dataSet) { foreach (DataTable table in dataSet.Tables) { string str = table.TableName; MessageBox.Show(str); } } DataSet对象常用方法如下表所示。 表 DataSet对象常用方法及说明 方法 说明 AcceptChanges 提交自加载此DataSet对象或上次调用AcceptChanges方法以来对其进行的所有更改 BeginInit 开始初始化在窗体上使用或由另一个组件使用的DataSet对象。初始化发生在运行时 Clear 通过移除所有表中的所有行来清除任何数据数据的DataSet对象 Clone 复制DataSet对象的结构,包括所有DataTable对象架构、关系和约束。不要复制任何数据数据 Copy 复制该DataSet对象的结构和数据数据 CreateDataReader 为每个DataTable对象返回带有一个结果集的DataTableReader对象,顺序与Tables集合中表的显示顺序相同 EndInit 结束在窗体上使用或由另一个组件使用的DataSet对象的初始化。初始化发生在运行时 GetChanges 获取DataSet对象的副本,该副本包含自上次加载以来或自调用AcceptChanges方法以来对该数据数据集进行的所有更改 GetHashCode 用作特定类型的哈希函数。GetHashCode方法适合在哈希算法和数据结构(如哈希表)中使用 GetObjectData 用序列化DataSet对象所需的数据数据填充序列化信息对象 GetService 获取IserviceProvider接口的实施者 GetType 获取当前实例的Type属性 GetXml 返回存储在DataSet对象中的数据数据的XML表示形式 GetXmlSchema 返回存储在DataSet对象中的数据数据的XML表示形式的XML架构 HasChanges 获取一个值,该值指示DataSet对象是否有更改,包括新增行、已删除的行或已修改的行 InferXmlSchema 将XML架构应用于DataSet对象 Load 通过所提供的 IdataReader接口,用某个数据源的值填充DataSet对象 Merge 将指定的DataSet对象、DataTable对象或DataRow对象的数组合并到当前的DataSet对象或 DataTable对象中。 ReadXml 将XML架构和数据数据读入DataSet对象 ReadXmlSchema 将XML架构读入DataSet对象 ReferenceEquals 确定指定的Object对象实例是否是相同的实例 RejectChanges 回滚自创建DataSet对象以来或上次调用DataSet.AcceptChanges方法以来对其进行的所有更改 Reset 将DataSet对象重置为其初始状态。子类应重写Reset方法,以便将DataSet对象还原到其原始状态 WriteXml 从DataSet对象写XML数据数据,还可以选择写架构 WriteXmlSchema 写XML架构形式的DataSet对象结构。 下面介绍几个主要的方法。 (1)ReadXml方法 使用指定的文件将XML架构和数据数据读入DataSet对象。 语法: public XmlReadMode ReadXml ( string fileName ) 参数: fileName作为读取源的文件名(包括路径)。 返回值: 用于读取数据数据的XmlReadMode枚举值。 示例: 通过TryXml.xml文件填充DataSet对象,程序代码如下。 DataSet newDataSet = new DataSet("HyWork"); newDataSet.ReadXml(“TryXml.xml”); (2)GetXml方法 返回存储在DataSet对象中的数据数据的XML表示形式。 语法: public string GetXml () 返回值: 表示存储在DataSet对象中的数据的字符串。 示例: 将数据集中的数据数据以XML文件形式显示给用户,程序代码如下。 DataSet dataSet = new DataSet("HyWork"); DataTable table = dataSet.Tables.Add("Items"); table.Columns.Add("id", typeof(int)); table.Columns.Add("Value", typeof(string)); DataRow row; for (int i = 0; i < 3; i++) { row = table.NewRow(); row["id"] = i; row["Value"] = "this is a number of:" + i; table.Rows.Add(row); } MessageBox.Show(dataSet.GetXml()); (3)Clear方法 通过移除所有表中的所有行来清除任何数据数据的DataSet对象。 语法: public void Clear () 示例: 例清除所有表中所有行的DataSet对象。 dataSet.Clear(); 有了DataSet对象使编程人员可以更灵活的操作数据,因为DataSet对象提供了关系DataRelation类。通过DataRelation类,设计人员可以以编程的方式动态的生成结果集(DataTable),下面笔者将完成从多个DataAdapter对象填充DataSet对象,然后通过DataRelation类生成新的DataTable对象。 示例 DataRelation的应用 通过DataSet对象与DataRelation对象生成新的DataTable对象。程序代码如下: public DataTable ds() { SqlDataAdapter PelAdapter = new SqlDataAdapter("SELECT * FROM t_People", Conn()); //实例SqlDataAdapter对象连接到SQL Server(也可以连接其它数据库) SqlDataAdapter ClstAdapter = new SqlDataAdapter("SELECT * FROM t_Class", Conn()); //实例SqlDataAdapter对象连接到SQL Server(也可以连接其它数据库只必改变连接对象) DataSet DS = new DataSet(); //实例化DataSet数据集 PelAdapter.Fill(DS, "t_People"); ClstAdapter.Fill(DS, "t_Class"); //通过SqlDataAdapter对象的fill方法添充DataSet数据集 DataRelation relation = DS.Relations.Add("t_People",DS.Tables["t_People"].Columns["tb_PID"],DS.Tables["t_Class"].Columns["tb_PID"]); //实例化关系将t_People表与t_Class表通过tb_PID字段关连起来 DataTable dt = new DataTable("NewTable"); //实例化一个新的DataTable对象,用于存放查询结果 DataColumn dcPName = new DataColumn(); dcPName.DataType = System.Type.GetType("System.String"); dcPName.AllowDBNull = true; dcPName.ColumnName = "姓名"; //实例化DataColumn对象,并为其指定相应属性,例如,DataType、ColumnName等 dt.Columns.Add(dcPName); //将DataColumn对象添加到DataTable中 dt.Columns.Add("性别", typeof(String)); DataColumn dcCClase = new DataColumn(); dcCClase.DataType = System.Type.GetType("System.String"); dcCClase.AllowDBNull = true; dcCClase.ColumnName = "班级"; dt.Columns.Add(dcCClase); DataColumn dcCNum = new DataColumn(); dcCNum.DataType = System.Type.GetType("System.Int32"); dcCNum.AllowDBNull = true; dcCNum.ColumnName = "人数"; dt.Columns.Add(dcCNum); DataRow row; //声名一个DataRow对象 foreach (DataRow pRow in DS.Tables["t_People"].Rows) { row = dt.NewRow(); //通过DataTabel对象的NewRow方法生成DataRow对象 row["姓名"] = pRow["tb_PName"].ToString().Trim();//去掉左右空格否则会出显空格 row["性别"] = pRow["tb_PSex"].ToString(); foreach (DataRow cRow in pRow.GetChildRows(relation)) { row["班级"] = cRow["tb_CClase"].ToString(); row["人数"] = cRow["tb_CNum"].ToString(); //为新行(DataRow对象)添加信息 } dt.Rows.Add(row); //把行信息添加到DataTable对象中 } return dt; //返回新的结果集(DataTable) }
/
本文档为【如何建立DLL文件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索