第四章C#常用数据类与Windows编程.ppt_第1页
第四章C#常用数据类与Windows编程.ppt_第2页
第四章C#常用数据类与Windows编程.ppt_第3页
第四章C#常用数据类与Windows编程.ppt_第4页
第四章C#常用数据类与Windows编程.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C#网络编程技术教程,第4章 C#常用数据类与Windows编程,学习目标,掌握使用关键字String来定义字符串类型,以及利用String类型提供的成员来实现对字符串的操作。 了解常用的集合类型,掌握对数组元素进行各种操作的ArrayList类的使用方法。 了解System.IO命名空间中包含的用于对数据文件和流进行读写操作的类,重点掌握File、Directory、Path、FileStream等类的使用。 了解.NET中数据库编程的一般技术,重点掌握ADO.NET的使用。 了解Windows程序设计的基本概念,掌握创建窗体的一般过程,以及窗体中各控件的使用,掌握菜单设计的步骤。,本章内容

2、,4.1 String类和StringBuilder类 4.2 ArrayList类 4.3 文件与IO流 4.4 Windows程序设计基础 4.5 数据库编程基础,4.1 String类和StringBuilder类,字符串将一组字符视为一个整体进行处理。C#使用关键字string来定义字符串类型,它对应着.NET类库的System.String类,该类专门用于存储字符串,允许对字符串进行许多操作。,4.1.1 字符串表示格式 string类型是从object类直接继承的封装类型,定义string类型变量的形式为: string 引用标识符=“字符串值” 例如:string strhell

3、o world!;,另外还可以通过string类的构造函数来表示字符串,例如: (1)public string(char,int) 将一个字符重复多次形成字符串 string str1=new string(a,3); /str1=aaa (2)public string (char) 将一个字符数组全部转换成一个字符串 char aa=new charh,e,l,l,o; string str2=new string(aa); /str2=hello (3)public string(char,int,int) 将字符数组的一部分转换成字符串,其中第二个参数和第三个参数分别表示数组中转换部

4、分的起始位置和长度 string str3=new string (aa,0,4); /str3=hell,4.1 String类和StringBuilder类,4.1.2 常用字符串操作方法,4.1 String类和StringBuilder类,(续上表),4.1 String类和StringBuilder类,4.1.3 StringBuilder类的常用方法,对字符串进行删除、插入、替换等操作时,StringBuilder类提供的Remove、Insert、Replace方法和String类对应的方法基本相同,但使用上有一些差别。,1Remove方法 StringBuilder类的Remo

5、ve方法相当于String类中对应方法的第二个重载形式。 Public StringBuilder Remove(int,int) 删除字符串从指定位置开始的指定长度的子串 2Replace方法 StringBuilder类的Replace方法比String类的Replace方法有更多的重载形式。其4种重载形式为: Public StringBuilder Replace(char,char) 将字符串中出现的所有指定字符替换成新的字符 Public StringBuilder Replace(string,string) 将字符串中出现的所有指定子串替换成新的子串 Public String

6、Builder Replace(char,char,int,int) 将字符串中指定范围内出现的所有指定字符替换成新的字符 Public StringBuilder Replace(string,string,int,int) 将字符串中制定范围内出现的所有指定子串替换成新的子串,4.1 String类和StringBuilder类,3Insert方法 StringBuilder类的Insert方法也是在字符串的指定位置插入一个子串,但它接受的参数类型除了可以是string类型,还可以是各种数值类型以及object类型。例如: StringBuilder str=new StringBuild

7、er(); str=str.Insert(0,DateTime.Now); str=str.Insert(4,年); str=str.Insert(7,月); str=str.Insert(11,日);,StringBuilder类还有特有的3种方法:Append、AppendLine和AppendFormat,它们都用于在字符串的尾端追加新内容。,4Append方法 Append方法可以在字符串的尾端追加一个新串,它和Insert方法相似,接受的参数不仅可以是string类型,还可以是各种数值类型和object类型。例如: StringBuilder str=new StringBuilde

8、r(); str.Append(UTC); str.Append(DateTime.Now.Hour); str.Append(时);,4.1 String类和StringBuilder类,5AppendLine方法 AppendLine方法比较简单,只有2种重载形式: Public StringBuilder AppendLine () 在字符串末端追加一个换行符 Public StringBuilder AppendLine (string) 在字符串末端追加一个新串和一个换行符 6AppendFormat方法 AppendFormat方法实际上是将Append方法和String类的静态方

9、法Format结合在一起,先对一个字符串进行参数格式化,然后将得到的字符串追加到对象包含的字符串末端。,4.2 ArrayList类,ArrayList类主要用于对数组中的元素进行各种处理,它通过Add、Insert、Remove、RemoveAt这4种方法对数组进行操作。,1Add() Add()方法用于将对象添加到ArrayList的末尾处。 2Insert() Insert()方法用于将数据元素插入到ArrayList的指定索引处。 3Remove() Remove()方法用于从ArrayList中删除指定对象的第一匹配项。 4RemoveAt() RemoveAt()方法用于删除Arr

10、ayList中指定索引处的数据元素。,4.2 ArrayList类,static void Main(string args) /实例化一个ArrayList对象 ArrayList myArrlist = new ArrayList(); /使用Add方法向myArrlist中添加对象 myArrlist.Add(星期一); myArrlist.Add(星期二); myArrlist.Add(星期三); foreach (int i in new int3 1,2,3 ) myArrlist.Add(i); /从myArrlist中删除值为3的第一个数据元素 myArrlist.Remove

11、(3); /从myArrlist中删除索引号为3的数据元素,即第4个元素 myArrlist.RemoveAt(3); /从索引号为2(即第3个元素的位置处)插入一个元素 myArrlist.Insert(2,星期四); ,例如:,4.3 文件与IO流,在.NET框架中,所有的输入输出操作都是基于流的方式。流是串行化设备的抽象表示,可以是一个文件、一个输入/输出设备或者是其他任何支持以线性方式读写的对象。Stream类是所有流类的抽象基类,它封装了操作系统和底层存储的各个细节,为用户提供了一致的方式来操作不同种类的数据源。与输入/输出操作相关的类都包含在命名空间System.IO中。,4.3.

12、1 文件操作,在.NET框架中,使用File类来实现对文件的操作。,1判断文件是否存在(Exists) 通过File类的Exists()方法(参数是文件的路径),能够简单快速地判断文件是否存在。如果文件存在,返回值为True,如果文件不存在,返回值为False。例如: File.Exists(d:abc.txt) 2创建文件(Create) File类的Create()方法可以方便地创建文件(参数是文件路径以及文件名),并返回一个FileStream对象,提供对创建的文件进行读写访问。例如: FileStream fsFile.Create(abc.txt),3删除文件(Delete) Fil

13、e类的Delete()方法用来删除指定的文件。例如: File.Delete(d:abc.txt) 4复制文件(Copy) File类的Copy()方法可以复制文件,它有两个参数:一个是源文件的路径及其文件名,另一个是目标文件的路径及其文件名。例如: File.Copy(d:abc.txt,c:abc.txt) 如果目标文件已经存在,则复制失败。如果要覆盖目标文件,可以使用这样的形式: File.Copy(d:abc.txt,c:abc.txt,true) 5移动文件(Move) File类的Move()方法可以对文件进行移动。例如: File.Move(“d:abc.txt”,“c:abc.

14、txt”) 6返回文件属性(GetAttributes) File类的GetAttributes()方法用来返回指定文件的属性,文件属性用枚举类型System.IO.FileAttributes表示(Archive表示归档属性,ReadOnly表示只读属性,Directory表示是否为一个目录等)。 FileAttributes attribFile.GetAttributes(d:abc.txt) if(attrib sw.Write(It is a example); sw.WriteLine(of StreamWriter); ,4.3 文件与IO流,(2)BinaryWriter类。

15、除了StreamWriter类外,System.IO还提供了BinaryWriter类,它以二进制形式将基元类型写入流。例如:,Public void WriteText() BinaryWriter bwnew BinaryWriter(File.Open(bw.bin,Filemode.Create); bw.Write(Hello World); bw.Close(); ,4.3 文件与IO流,3文件的读取 (1)StreamReader类。 StreamReader类是用来读取文本文件的类,它提供了许多用于读取和浏览数据的方法。下面介绍其常用的方法。 Close() Close()方法

16、用于关闭StreamReader对象和基础流,释放读取器占用的所有系统资源。 Read() Read()方法用于读入文本流中的下一个字符并移动文件指针。 ReadLine() ReadLine()方法用于从文本流中读入一行字符,并将数据作为字符串返回。 ReadToEnd() ReadToEnd()方法用于读取文本流中从当前位置到末尾的所有内容,并将读到的数据作为字符串返回。,(2)BinaryReader类 除了StreamReader类外,System.IO还提供了BinaryReader类,用于按二进制读取文件。,4.4 Windows程序设计基础,窗体的常用属性,4.4.1 创建简单的

17、WinForm程序,4.4 Windows程序设计基础,4.4.2 Windows窗体应用程序模型,Windows窗体的应用程序编程模型主要由窗体、控件及其事件组成。 1窗体 在Windows窗体中,Form类是在应用程序中显示的任何窗口的表示形式。当为应用程序设计用户界面时,首先创建一个从Form派生的类。然后添加控件、设置属性、创建事件处理程序以及向窗体添加编程逻辑。 2控件 添加到窗体中的每个组件(如Button、TextBox或RadioButton)称为控件。Windows窗体通常包括与Windows关联的所有控件以及类似Windows窗体DataGridView的自定义控件。 3事

18、件 Windows窗体编程模型基于事件。,4.4 Windows程序设计基础,4.4.3 WinForm常用控件,1.标签控件(Label) Label控件为控件提供运行时信息或说明性文字,通常用于显示静态文本,是WinForm中最基本的控件。,标签控件的常用属性,除了常规的标签控件外,.NET框架还提供了一种新型的标签控件LinkLabel,它由Label类派生,因此具有标签控件所有的属性、事件和方法。LinkLabel控件使用户能向Windows窗体程序中添加Web样式的链接。,一、常用控件,4.4 Windows程序设计基础,2.文本框控件(TextBox) 文本框控件通常用于接收用户的

19、输入或者显示文本。,文本框的常用属性,4.4 Windows程序设计基础,文本框的常用方法,文本框最常用的事件是TextChanged事件,当文本框中的内容发生改变时,触发该事件。,4.4 Windows程序设计基础,3.列表框控件(ListBox) 列表框控件通常用于显示供用户选择的选项列表,用户可以从中选择一项或多项。,列表框的常用属性,4.4 Windows程序设计基础,列表框的常用方法,组合框控件(ComboBox)结合了文本框控件和列表框控件的功能,同时具有这两类控件的功能,能够执行大部分文本框和列表框所具有的操作。,列表框常用的事件: SelectedIndexChanged事件和

20、SelectedValueChanged事件。,4.4 Windows程序设计基础,4.命令按钮控件(Button) 命令按钮控件允许用户通过单击来响应各种操作,当单击Button控件时,即调用了它的Click事件。,命令按钮的常用属性,命令按钮最常用的事件是Click事件。,4.4 Windows程序设计基础,二、容器控件,1.FlowLayoutPanel控件 FlowLayoutPanel控件主要用来排列该容器控件中包含的控件对象。,FlowLayoutPanel控件的常用属性,FlowLayoutPanel控件最常用的事件是Layout事件。,4.4 Windows程序设计基础,Pan

21、el控件用于对控件集合分组。利用Panel控件可以按功能细分窗体,当移动Panel控件时,Panel控件里面包含的控件对象也一起移动。 Panel控件的常用属性,Panel控件常用事件是Layout事件。,2.Panel控件,4.4 Windows程序设计基础,3.GroupBox控件 GroupBox控件用于在一组控件周围显示带有标题的框架。同样当移动GroupBox控件时,GroupBox控件里面包含的控件也一起移动。 GroupBox控件的常用属性,4.TabControl控件 TabControl控件用于显示多个选项卡,以创建一组相关属性的属性页。 TabControl控件的常用属性,

22、4.4 Windows程序设计基础,三、通用对话框控件,1.消息对话框(MessageBox) 消息对话框(MessageBox)通常用于向用户显示一些提示、警告信息。用户不能创建MessageBox类的实例,而只能通过它的静态成员来显示消息对话框。 若要显示消息对话框,通常是调用类MessageBox的静态方法Show。在调用Show方法时,除了需要指定在消息对话框中出现的文本和消息对话框的标题外,还可以通过MessageBoxIcon和MessageBoxButton类来指定在消息对话框中出现的图标和按钮类型。,MessageBoxIcon的枚举成员,4.4 Windows程序设计基础,M

23、essageBoxButton的枚举成员,MessageBox.Show(这是一个包含警告图标和确定、取消按钮的消息框, 消息框示例,MessageBoxButtons.OKCancel,MessageBoxIcon.Exclamation);,例如:,4.4 Windows程序设计基础,文件对话框通常用来打开文件和保存文件,其中打开文件对话框是用类OpenFileDialog表示,保存文件对话框是用类SaveFileDialog表示,这两个类都从FileDialog类派生,它们的使用方法也基本相同。,2.文件对话框,OpenFileDialog的常用属性,4.4 Windows程序设计基础,

24、续上表,OpenFileDialog对话框的常用方法,4.4 Windows程序设计基础,3.颜色对话框(ColorDialog) ColorDialog控件用于显示选择颜色的对话框,其常用属性如表4.21所示。 ColorDialog控件的常用属性,4.4 Windows程序设计基础,4.字体对话框(FontDialog) FontDialog对话框用于显示选择字体的对话框。 FontDialog对话框的常用属性,4.4 Windows程序设计基础,4.4.4 Visual C#的菜单设计与编程,菜单是可视化编程的重要组成部分,在开发Windows应用程序时,菜单是组织大量数据最常用的方法。

25、菜单通常分为下拉菜单(包括主菜单和子菜单)和快捷菜单两种。 主菜单:显示在菜单栏上、窗体运行时始终显示的菜单。 子菜单:主菜单下面的菜单。 快捷菜单:单击鼠标右键弹出的菜单。 其中下拉菜单使用类MenuStrip创建,快捷菜单使用类ContextMenuStrip创建。两者设计完全相同。,4.4 Windows程序设计基础,MDI(Multiple-Document Interface)即多文档界面,由一个父窗体和多个子窗体组成。MDI窗体允许同时打开多个子窗体,是一种能够同时处理两个或两个以上窗体的界面形式。创建MDI窗体主要包括以下步骤: 1)MDI父窗体的创建 2)MDI子窗体的创建 3

26、)从父窗体中调用子窗体。,4.4.5 Visual C#中的MDI编程,4.5 数据库编程基础,4.5.1 ADO.NET概述,ADO.NET由ADO发展而来,具有与ADO相似的编程方式,是.NET提供的一组专门用于存取数据的类。ADO.NET最重要的新特性是:以断开连接的方式访问数据源以及使用标准的XML格式来保存和传输数据,它比ADO具有更好的互操作性、可维护性和可扩展性。,ADO.NET的体系结构图:,ADO.NET主要由两部分构成:一部分是.NET数据提供程序(Data Provider),这部分是与数据库直接相连的联机对象,通过该类对象,可以在应用程序内完成连接数据源以及数据维护等相

27、关操作;一部分是数据集(DataSet),这部分是与数据源无关的断开对象,是断开连接访问方式的核心组件。,4.5 数据库编程基础,4.5.2 ADO.NET的数据访问对象,1Connection对象 要访问数据库,首先要建立与数据库的连接,ADO.NET提供了与数据源连接的对象,包括SqlConnection、OleDbConnection、OdbcConnection等。,1)SqlConnection类 SqlConnection类用来建立到SQL Server数据库的连接,它位于System.Data.SqlClient命名空间中。使用SqlConnection类首先要创建对象实例,然后

28、通过设置SqlConnection对象的连接字符串(ConnectionString)属性来选择连接字符串。,常用的连接属性:,4.5 数据库编程基础,SqlConnection类的常用方法, Open() Open()方法用于打开数据库连接,如果存在可用的数据连接,则SqlConnection会直接使用它,如果没有,则SqlConnection会创建一个新的连接。 Close() Close()方法用于关闭打开的数据库连接。调用Open()方法打开数据连接之后,数据库将一直处于打开状态,因此,必须调用Close()方法或Dispose()方法来关闭数据连接。 ChangeDatabase()

29、 ChangeDatabase()方法用于改变建立连接的数据库。例如: SqlConnection1.ChangeDatabase(pubs); BeginTransaction() BeginTransaction()方法用于开始一个事务。例如: sqlConnection1.Open(); sqlTransaction transqlConnection1.BeginTransaction();,4.5 数据库编程基础, 创建SqlConnection对象。 将连接字符串赋值给SqlConnection对象的ConnectionString属性。 调用SqlConnection对象的Ope

30、n方法打开连接。 连接完毕后,调用SqlConnection对象的Close方法关闭连接。 调用SqlConnection对象的Dispose方法释放其占用的资源。,利用SqlConnection类,建立SQL Server数据库连接的一般步骤如下:,2)OleDbConnection类 OleDbConnection类表示到OLE DB数据源的连接,它位于命名空间System.Data.OleDb中。使用OleDbConnection类首先要创建OleDbConnection对象实例,然后通过设置OleDbConnection对象的连接字符串(ConnectionString)属性来选择连接

31、字符串,其设置方法与SqlConnection对象完全相同。,4.5 数据库编程基础,2Command对象 使用Connection对象与数据源建立连接之后,可以使用Command对象来对数据源执行查询、添加、删除和修改等操作。.NET 提供了两种数据命令类:SqlCommand类和OleDbCommand类,SqlCommand类专用于SQL Server数据库,而OleDbCommand用于所有OLE DB数据源。,1)SqlCommand类 SqlCommand类表示将在SQL Server中执行的SQL语句或存储过程,它位于命名空间System.Data.SqlClient中。,Sql

32、Command类的常用属性,4.5 数据库编程基础,SqlCommand类的常用方法, ExecuteReader() ExecuteReader()方法将CommandText属性发送给Connection对象并生成一个SqlDataReader对象。 ExecuteNonQuery() 在执行不返回结果的数据库操作时,可以使用SqlCommand对象的ExecuteNonQuery()方法,该方法在SqlCommand对象所关联的数据库连接上执行Transact-SQL语句并返回语句所影响的行数。 ExecuteScalar() ExecuteScalar()方法用于执行命令中的查询语句,

33、并返回结果集中的第一行的第一列,其他的列和行都将被忽略。,2)OleDbCommand类 OleDbCommand类表示在OLE DB数据源上执行的SQL语句或存储过程,它包含的属性和方法与SqlCommand类完全相同,使用方式也完全相同。,4.5 数据库编程基础,3DataReader对象 DataReader对象是一个简单的数据集,用于从数据源中检索只读数据集。.NET提供了两种类:SqlDataReader类和OleDbDataReader类。这两个类除了用于不同的数据源(SqlDataReader用于SQL,OleDbDataReader用于所有的OLE DB数据源),其他的方面完全

34、相同。 一般情况下,不需要直接创建SqlDataReader对象或OleDbDataReader对象,而是通过调用SqlCommand对象或OleDbCommand对象的ExecuteReader方法从数据源中检索数据来创建。,DataReader对象的常用属性,4.5 数据库编程基础, Close() Close()方法用于关闭SqlDataReader对象。在使用完SqlDataReader对象之后,必须调用这个方法来关闭它,以使数据库连接能够用于其他操作。 Read() Read()方法使SqlDataReader对象移到下一条记录上。SqlDataReader对象的默认位置是第一条记录

35、之前,因此在访问数据之前,必须先调用它的Read()方法,如果该方法返回True,说明后面还有记录存在,反之,说明已经到达结果记录集的末尾。,SqlDataReader对象常用方法,4.5 数据库编程基础,4DataSet对象 DataSet(数据集)是ADO.NET体系结构中的核心部分,ADO.NET的断开式、分布式数据方案正是通过它来实现的。DataSet主要用作一个非连接的数据缓存,从数据源中检索的数据都暂存在这个缓存中,供程序的其他部分使用。DataSet(数据集)独立于数据源,它的结构和关系数据库相似,主要体现为以下两大部分。 1)DataTableCollection DataTa

36、bleCollection是由多个DataTable对象表示的表的集合。DataTable对象表示内存驻留数据的单个表,由DataColumnCollection类表示的列集合和ConstraintCollection类表示的约束集合共同构成。 2)DataRelationCollection DataSet(数据集)中,不仅包含多个DataTable,还包含这些DataTable之间的关系。表之间的关系由类DataRelation表示,它使一个DataTable对象中的行和另一个DataTable对象中的行相关联,即表示了两个表之间的一种父子关系,类似于关系数据库中主码和外码之间的联接。,4

37、.5 数据库编程基础,DataSet对象的常用属性:, ReadXml() ReadXml()方法主要用于使用指定的文件将XML架构和数据读入DataSet对象。 GetXml() GetXml()方法用于将DataSet(数据集)中的数据以XML文件形式显示给用户。 Clear() Clear()方法用于清除所有表中的所有行的DataSet对象。,DataSet对象的常用方法:,4.5 数据库编程基础,5DataAdapter对象,DataAdapter是DataSet数据集和数据源之间的桥梁,用于在DataSet和数据源之间交换数据。.NET提供了两类适配器: SqlDataAdapter

38、(用于访问SQL Server数据库)和 OleDbDataAdapter(用于访问任何OLE DB数据源),SqlDataAdapter对象的常用属性:,4.5 数据库编程基础, Fill() Fill()方法执行SqlDataAdapter对象SelectCommand属性中的查询语句,从数据源中检索记录,然后使用检索结果更新数据集中的DataTable,如果DataTable不存在,则创建新的DataTable。 Update() Update()方法调用UpdateCommand、InsertCommand DeleteCommand属性中的查询语句,并用数据集中的数据更新数据源。,S

39、qlDataAdapter的常用方法:,4.5 数据库编程基础,4.5.3 ADO.NET访问常用数据库,1建立数据库连接,private void btnConn_Click(object sender, EventArgs e) /建立连接 SqlConnection con = new SqlConnection(server=.;database=usersDB;uid=sa;pwd=;); Con.Open() if (con.State.ToString()=Open) this.lblConnShow.Text = 数据库连接成功!; ,4.5 数据库编程基础,2向数据库中添加数

40、据,private void bind() /创建连接server=.表示连接到本地,database=usersDB指定数据库的名字,uid=sa;pwd=;指定用户名及密码 SqlConnection con = new SqlConnection(server=.;database=usersDB;uid=sa;pwd=;); /创建数据适配器对象,用于装载其查询内容至数据集。 SqlDataAdapter sda = new SqlDataAdapter(select * from usersTB order by userID desc, con); /创建新的数据集 DataSet ds = new DataSet(); /装载 sda.Fill(ds, allUsers); /指定dataGridView对象的数据源 this.dataGridView1.DataSource = ds.TablesallUsers; ,4.5 数据库编程基础,private void btnAdd_Click(object sender, EventArgs e) string name = this.txtUserName.Text.ToString(); string pwd = this.txtUserPwd.Text.ToString

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论