ADO数据控件与数据绑定控件.ppt

上传人:wuy****n92 文档编号:70102243 上传时间:2023-01-16 格式:PPT 页数:48 大小:448.50KB
返回 下载 相关 举报
ADO数据控件与数据绑定控件.ppt_第1页
第1页 / 共48页
ADO数据控件与数据绑定控件.ppt_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《ADO数据控件与数据绑定控件.ppt》由会员分享,可在线阅读,更多相关《ADO数据控件与数据绑定控件.ppt(48页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第1515章章 ADOADO数据控件与数据控件与数据绑定控件数据绑定控件 1 ADOADO数据控件数据控件是使用是使用ADOADO数据对象来快数据对象来快速建立数据绑定控件和数据提供者之间的速建立数据绑定控件和数据提供者之间的连接,并快速创建记录集,然后将数据通连接,并快速创建记录集,然后将数据通过数据绑定控件显示给用户。过数据绑定控件显示给用户。数据绑定控件数据绑定控件是任何具有是任何具有“数据源数据源”属性的控件。属性的控件。215.1 ADO15.1 ADO数据控件数据控件 ADOADO数据控件是目前流行的、比较新的数据控件是目前流行的、比较新的数据访问控件,它支持数据访问控件,它支持

2、OLE DBOLE DB数据访问模数据访问模型。使用型。使用ADOADO数据控件可以访问几乎各种类数据控件可以访问几乎各种类型的数据源。型的数据源。ADOADO数据控件用于指定连接的数据源和数据控件用于指定连接的数据源和要访问的数据,要访问的数据,对所获得数据的显示要靠对所获得数据的显示要靠数据绑定控件实现。数据绑定控件实现。3添加添加ADOADO数据控件的方法为:数据控件的方法为:1)“1)“工程工程”“部件部件”,打开部件对话框。,打开部件对话框。2)2)在在“控件控件”标签页上,选中标签页上,选中“Microsoft ADO Microsoft ADO Data ControlData

3、Control(OLE DBOLE DB)”复选框。复选框。3)3)单击单击“确定确定”关闭对话框。此时关闭对话框。此时“工具箱工具箱”中会出现中会出现ADOADO数据控件的图标。数据控件的图标。ADOADO数据控件数据控件 4在在AdodcAdodc上有四个按钮,其功能分别为:上有四个按钮,其功能分别为:结果记录集中的当前行指针移到第一行。结果记录集中的当前行指针移到第一行。结果记录集中的当前行指针向前移动一行。结果记录集中的当前行指针向前移动一行。结果记录集中的当前行指针向后移动一行。结果记录集中的当前行指针向后移动一行。结果记录集中的当前行指针移到最后一行。结果记录集中的当前行指针移到最

4、后一行。5一、一、ADO数据控件的主要属性、方法和事件数据控件的主要属性、方法和事件1 1、ADOADO数据控件的主要属性数据控件的主要属性ConnectionStringConnectionString属性属性 此属性此属性用于建立与数据源的连接用于建立与数据源的连接。它是一。它是一个字符串,其中所包含的参数与使用的数据访个字符串,其中所包含的参数与使用的数据访问接口有关。问接口有关。6SQL图图15-5“数据链接属性数据链接属性”对话对话框框7图图15-6 连接到连接到Access数据库数据库8图图15-7 链接到链接到SQL Server数据库数据库9CommandTypeCommand

5、Type属性属性 此属性此属性指明命令的类型指明命令的类型,即要访问的数据的,即要访问的数据的来源。一般这个属性来源。一般这个属性和和RecordSourceRecordSource属性配合使属性配合使用用。CommandTypeCommandType属性的取值有如下四个:属性的取值有如下四个:ladCmdUnknownadCmdUnknown:默认值。表示默认值。表示RecordSourceRecordSource中的命令类型未知。中的命令类型未知。ladCmdTableadCmdTable:RecordSourceRecordSource属性的内容是属性的内容是一个表名。一个表名。ladC

6、mdTextadCmdText:RecordSourceRecordSource属性的内容是一属性的内容是一个查询语句文本串。个查询语句文本串。ladCmdStoredProcadCmdStoredProc:RecordSourceRecordSource属性的内属性的内容是一个存储过程名。容是一个存储过程名。10RecordSourceRecordSource属性属性 此属性用于此属性用于设置设置ADOADO结果集的内容结果集的内容,内容可,内容可来自一张表,一个查询语句,或一个存储过程的来自一张表,一个查询语句,或一个存储过程的执行结果。执行结果。adCmdUnknown或或adCmdTe

7、xt可用可用 11MaxRecordsMaxRecords属性属性 MaxRecordsMaxRecords属性属性决定了结果集中的记决定了结果集中的记录的最大数目录的最大数目。RecordsetRecordset属性属性 该属性是该属性是ADOADO数据控件中实现数据记录数据控件中实现数据记录操作最重要的属性,用于操作最重要的属性,用于存放从数据提供存放从数据提供者那获得的查询结果者那获得的查询结果。而且这个属性本身。而且这个属性本身又是一个对象,也有自己的属性的方法,又是一个对象,也有自己的属性的方法,它直接指向它直接指向ADOADO对象模型中的对象模型中的RecordsetRecords

8、et对对象。象。122、ADO数据控件的主要方法数据控件的主要方法 RefreshRefresh方法用于方法用于更新更新ADOADO数据控件属性,数据控件属性,使修改后的使修改后的ADOADO数据控件属性生效数据控件属性生效。当修改了。当修改了ADOADO数据控件的数据控件的ConnectionStringConnectionString属性的值时,属性的值时,使用使用RefreshRefresh方法会重新连接一次数据库;当修方法会重新连接一次数据库;当修改了改了ADOADO数据控件的数据控件的RecordSourceRecordSource属性的值时,属性的值时,使用使用RefreshRef

9、resh方法会重新执行方法会重新执行RecordSourceRecordSource属性属性的内容,重新产生结果集。使用的内容,重新产生结果集。使用RefreshRefresh方法的方法的格式为:格式为:ADOADO数据控件名数据控件名.Refresh.Refresh133、ADO数据控件的主要事件数据控件的主要事件 比较常用的事件:比较常用的事件:lEndOfRecordsetEndOfRecordset事件事件lErrorError事件事件lWillChangeFieldWillChangeField事件和事件和 FieldChangeComplete FieldChangeComplet

10、e事件事件lWillChangeRecordWillChangeRecord事件和事件和 RecordChangeCompleteRecordChangeComplete事件事件lWillMoveWillMove事件和事件和MoveCompleteMoveComplete事件事件14二、二、RecordSet对象主要属性和方法对象主要属性和方法1 1、RecordsetRecordset对象的主要属性对象的主要属性 BOFBOF EOFEOF RecordCount RecordCount Sort Sort AbsolutePosition AbsolutePosition ActiveCo

11、mmand ActiveCommand ActiveConnection ActiveConnection Bookmark Bookmark FieldsFields15 Fields Fields属性本身也是一个对象,它直接指向属性本身也是一个对象,它直接指向ADOADO对象模型中的对象模型中的FieldsFields对象。对象。Fields Fields对象属性信息:对象属性信息:lFieldsFields.Name.Name:字段名称。:字段名称。lFields.Fields.ValueValue:字段的值。:字段的值。lFields.Fields.OrdinalPositionOrd

12、inalPosition:字段在:字段在FieldsFields集集 合中的顺序。合中的顺序。lFields.Fields.TypeType:字段的数据类型。:字段的数据类型。lFields.Fields.SizeSize:字段的最大字节数。:字段的最大字节数。lFields.Fields.SourceTableSourceTable:字段来自的表:字段来自的表lFields.Fields.SourceFieldSourceField:字段来自的表中的列:字段来自的表中的列162、RecordSet对象的主要方法对象的主要方法(1)Move(1)Move方法组方法组MoveFirstMoveF

13、irstMovePreviousMovePreviousMoveNextMoveNextMoveLastMoveLast(2)AddNew(2)AddNew方法方法 用于在结果集中添加一个新记录用于在结果集中添加一个新记录17(3)Update(3)Update方法方法 Update Update方法将新记录缓冲区中的记录或者方法将新记录缓冲区中的记录或者对当前记录的修改真正写到数据库中,使新添对当前记录的修改真正写到数据库中,使新添加的记录或修改后的结果被永久保存在数据库加的记录或修改后的结果被永久保存在数据库中。中。(4)Delete(4)Delete方法方法 Delete Delete方

14、法删除结果集中当前行记录指针方法删除结果集中当前行记录指针所指的记录,并且这个删除是直接对数据库数所指的记录,并且这个删除是直接对数据库数据操作的,删除后的数据不可恢复。据操作的,删除后的数据不可恢复。18(5)CancelUpdate(5)CancelUpdate方法方法 该方法取消新添加的记录或对当前记录该方法取消新添加的记录或对当前记录所做的修改。所做的修改。注意注意:此方法应在调用此方法应在调用UpdateUpdate方法之前调用,调用了方法之前调用,调用了UpdateUpdate之后的修改是之后的修改是不能撤销的不能撤销的。另外需要注意的是另外需要注意的是,如果没有添加新记如果没有添

15、加新记录,也没有对当前记录进行任何修改,则调录,也没有对当前记录进行任何修改,则调用用CancelUpdateCancelUpdate方法将产出错误方法将产出错误。19(6)Find(6)Find方法方法 Find Find方法用于在当前结果集中查找满足方法用于在当前结果集中查找满足添加的记录。添加的记录。FindFind方法的格式为:方法的格式为:ADOADO数据控件名数据控件名.Recordset.Find.Recordset.Find(查找条件表达式查找条件表达式)“查找条件表达式查找条件表达式”中可以包含比较运算中可以包含比较运算符、逻辑运算符和符、逻辑运算符和LikeLike查找符。

16、查找符。例如:查找计算机系的学生:例如:查找计算机系的学生:Find(Sdept=Find(Sdept=计算机系计算机系)2015.2 15.2 数据绑定控件数据绑定控件 数据绑定数据绑定实际上就是将结果集中的数实际上就是将结果集中的数据同应用程序界面中的控件联系起来,通据同应用程序界面中的控件联系起来,通过这些界面上的控件将结果集中的数据显过这些界面上的控件将结果集中的数据显示给用户,而且用户还可以通过这些控件示给用户,而且用户还可以通过这些控件实现对数据库数据的增、删、改操作。实现对数据库数据的增、删、改操作。21 在在VBVB预定义的标准控件中预定义的标准控件中,只有那些具有只有那些具有

17、DataSourceDataSource属性的控件才是数据绑定控件。属性的控件才是数据绑定控件。常用的有:常用的有:TextBoxTextBox、CheckBoxCheckBox、ListBoxListBox、ComboBoxComboBox等。等。外部绑定控件:主要有:外部绑定控件:主要有:DataComboDataCombo、DataListDataList、DataGridDataGrid、MSHFGridMSHFGrid、Microsoft Microsoft ChartChart等。等。数据绑定控件主要通过以下两个属性来实数据绑定控件主要通过以下两个属性来实现数据绑定:现数据绑定:D

18、ataSourceDataSource:指定要绑定的数据源:指定要绑定的数据源DataFieldDataField:指定控件要显示的结果集中的字段:指定控件要显示的结果集中的字段22一、一、DataGrid控件控件 DataGridDataGrid以以表格表格的形式显示结果集中的全的形式显示结果集中的全部数据,并允许用户在此控件中浏览、添加、部数据,并允许用户在此控件中浏览、添加、删除和修改记录。删除和修改记录。DataGrid DataGrid控件需要手工添加到控件需要手工添加到VBVB工具箱工具箱中,添加的方法是:中,添加的方法是:“工程工程”“部件部件”选择选择“Microsoft Mi

19、crosoft DataGrid Control 6DataGrid Control 6(OLE DBOLE DB)”231 1、DataGridDataGrid控件的主要属性控件的主要属性AllowAddNewAllowDeleteAllowUpdateColumnHeadersEnabled24控制控件的浏览属性控制控件的浏览属性2526指定每个列的数据类型指定每个列的数据类型272 2、DataGridDataGrid控件的特殊属性、方法和事件控件的特殊属性、方法和事件 DataGrid DataGrid控件还有一些特殊的属性和事控件还有一些特殊的属性和事件,用来实现对显示的数据进行排序

20、、隐藏件,用来实现对显示的数据进行排序、隐藏某列以及修改某列以及修改RecordsetRecordset数据。数据。(1 1)使用)使用HeadClickHeadClick事件对列进行排序事件对列进行排序 可以设置可以设置RecordsetRecordset对象的对象的SortSort属性,属性,然后使用然后使用DataGridDataGrid的的RefreshRefresh方法,用排序方法,用排序后的顺序重新显示结果集数据。后的顺序重新显示结果集数据。28 下面的代码实现按用户在下面的代码实现按用户在DataGridDataGrid表格中表格中单击的列标题进行降序排序,并显示排序后的单击的列

21、标题进行降序排序,并显示排序后的结果。结果。Private Sub DtgStudent_HeadClick(ByVal Private Sub DtgStudent_HeadClick(ByVal ColIndex As Integer)ColIndex As Integer)With Adodc1.RecordsetWith Adodc1.Recordset .Sort=.Fields(ColIndex).Name&DESC .Sort=.Fields(ColIndex).Name&DESC End With End With DtgStudent.Refresh DtgStudent.R

22、efreshEnd SubEnd Sub29(2 2)在运行模式下改变显示的列)在运行模式下改变显示的列 隐藏列的最简单的方法是设置列的隐藏列的最简单的方法是设置列的VisibleVisible属性为属性为FalseFalse。30Private Sub CmdSomeColumns_Click()Private Sub CmdSomeColumns_Click()隐藏隐藏SsexSsex和和SageSage列列 With DtgStudentWith DtgStudent .Columns(2).Visible=False.Columns(2).Visible=False .Columns(

23、3).Visible=False .Columns(3).Visible=False End With End With CmdSomeColumns.Enabled=False CmdSomeColumns.Enabled=False CmdAllColumns.Enabled=TrueCmdAllColumns.Enabled=True End SubEnd Sub31 Private Sub CmdAllColumns_Click()Private Sub CmdAllColumns_Click()显示全部列显示全部列 Dim intCol As IntegerDim intCol As

24、 Integer With DtgStudent With DtgStudent For intCol=0 To.Columns.Count-1 For intCol=0 To.Columns.Count-1 .Columns(intCol).Columns(intCol).VisibleVisible=True=True Next Next End WithEnd With CmdSomeColumns.Enabled=True CmdSomeColumns.Enabled=True CmdAllColumns.Enabled=False CmdAllColumns.Enabled=Fals

25、eEnd SubEnd Sub32(3 3)用)用DataGridDataGrid事件确认更新事件确认更新 DataGrid DataGrid控件的事件:控件的事件:事件事件触发时刻触发时刻BeforeColEdit BeforeColEdit 移入新单元后,但在单元中敲入第一个字符之前移入新单元后,但在单元中敲入第一个字符之前 ColEdit ColEdit 在单元中敲入第一字符后在单元中敲入第一字符后 AfterColEdit AfterColEdit 紧随紧随AfterColUpdateAfterColUpdate事件之后事件之后 BeforeColUpdate BeforeColUpd

26、ate 改变单元值或移入一个新单元之后,但在改变单元值或移入一个新单元之后,但在DataGridDataGrid缓冲区内容改变之前缓冲区内容改变之前 AfterColUpdate AfterColUpdate 在为更新的列修改缓冲区之后(同在为更新的列修改缓冲区之后(同AfterColEditAfterColEdit)BeforeDelete BeforeDelete 在选中一行并按在选中一行并按DeleteDelete键之后,但在列从键之后,但在列从RecordsetRecordset中删除之前中删除之前 AfterDelete AfterDelete 从从RecordsetRecordse

27、t删除一行之后删除一行之后 BeforeInsert BeforeInsert 在临时加入的记录组成的列中敲入至少一个字符之在临时加入的记录组成的列中敲入至少一个字符之后,但在行被加入到后,但在行被加入到RecordsetRecordset之前之前 AfterInsert AfterInsert 在行加入到在行加入到RecordsetRecordset之后之后 BeforeUpdate BeforeUpdate 在修改任何列的值或移动一个新记录之后,但在在修改任何列的值或移动一个新记录之后,但在RecordsetRecordset更新之前更新之前 AfterUpdate AfterUpdate

28、 在更新在更新RecordsetRecordset的行之后的行之后 33二、二、DataList和和DataCombo控件控件 DataList DataList和和DataComboDataCombo控件在功能上与控件在功能上与ListBoxListBox与与ComboBoxComboBox很类似,但它们可以直接从很类似,但它们可以直接从ADOADO结果集中获取信息,而不用通过结果集中获取信息,而不用通过AddItemAddItem命命令语句来添加信息。令语句来添加信息。DataList DataList和和DataComboDataCombo控件需要手工添加到控件需要手工添加到VBVB工具

29、箱中,添加的方法是:工具箱中,添加的方法是:“工程工程”“部件部件”选择选择“Microsoft Microsoft DataList Control 6.0DataList Control 6.0(OLE DBOLE DB)”34DataListDataList控件的主要属性:控件的主要属性:属性属性 描述描述 DataSource DataSource 连接有外码的子表数据源连接有外码的子表数据源 BoundColumn BoundColumn 指定指定DataSourceDataSource和和RowSouceRowSouce数数据源中有关联关系的字段名称据源中有关联关系的字段名称 Ro

30、wSourceRowSource 连接外码对应的主表数据源连接外码对应的主表数据源DataField DataField 指定与指定与RowSourceRowSource数据源中有数据源中有 关联关系的字段名称关联关系的字段名称 ListFieldListField 指定在指定在DataListDataList列表中显示的列表中显示的字段字段35 一般来说,一般来说,DataSourceDataSource连接的是有外码的子连接的是有外码的子表数据源表数据源,比如,比如SCSC表;而表;而RowSourceRowSource连接的是外码连接的是外码所对应的主码所在的主表数据源所对应的主码所在的

31、主表数据源,比如,比如StudentStudent表。表。DataField DataField属性指明与属性指明与RowSouceRowSouce数据源中有关数据源中有关联关系的字段名称,联关系的字段名称,BoundColumnBoundColumn属性指明属性指明RowSourceRowSource数据源中哪个列作为两个表的关联列数据源中哪个列作为两个表的关联列(通常情况下,这个列都是(通常情况下,这个列都是RowRourceRowRource数据源中的数据源中的主码)。主码)。如果没有主码、外码关联关系,则只设置如果没有主码、外码关联关系,则只设置RowSourceRowSource和和

32、ListFieldListField属性的值即可,其他属性属性的值即可,其他属性的值均可不设。的值均可不设。3637对象名 属性名 属性值 AdoSC AdoSC ConnectionString ConnectionString 连接到连接到SQL ServerSQL Server上的上的“学生管理数据库学生管理数据库”CommandType CommandType adCmdTable adCmdTable RecordSource RecordSource SC SC AdoStudent AdoStudent ConnectionString ConnectionString 连接到连

33、接到SQL ServerSQL Server上的上的“学生管理数据库学生管理数据库”CommandType CommandType adCmdTable adCmdTable RecordSourceRecordSourceStudent Student DataGrid1 DataGrid1 DataSource DataSource AdoSC AdoSC DataList1 DataList1 DataSource DataSource AdoSC AdoSC RowSource RowSource AdoStudent AdoStudent DataField DataField Sn

34、o Sno ListField ListField Sname Sname BoundColumn BoundColumn Sno Sno 383915.3 ADO15.3 ADO对象对象 ConnectionCommandRecordsetErrorsParametersFieldsErrorParameterField ADO ADO是一个数据访问接口,是建筑在是一个数据访问接口,是建筑在OLE DBOLE DB之上的高层接口集,介于之上的高层接口集,介于OLE DBOLE DB底层接口和应底层接口和应用程序之间的接口。利用用程序之间的接口。利用ADOADO对象模型也可以实对象模型也可以实

35、现数据库的全部操作。现数据库的全部操作。40一、一、Connection-数据库连接对象数据库连接对象 Connection Connection对象用于指定数据源,在对数据对象用于指定数据源,在对数据库进行操作之前,必须先创建该对象。库进行操作之前,必须先创建该对象。属性属性功能功能ConnectionString使用方法和含义同使用方法和含义同ADO数据控件数据控件DefaultDatabase定义该对象的缺省数据库定义该对象的缺省数据库Provide连接中使用的连接中使用的OLE DB提供者提供者state当前状态,只读。当前状态,只读。Connection对象属性列表对象属性列表41方

36、法方法功能功能BeginTrans开始一个事务开始一个事务RollbackTrans回滚一个事务回滚一个事务Cancel终止当前的数据库操作终止当前的数据库操作Close关闭关闭Connection对象对象Excute执行执行SQL语言或者查询语言或者查询Open打开打开Connection对象对象Connection对象方法列表对象方法列表42二、二、Command-命令对象命令对象 该对象代表对数据源执行的命令,使用该命该对象代表对数据源执行的命令,使用该命令可以查询数据,并将查询结果返回给令可以查询数据,并将查询结果返回给RecordsetRecordset对象。对象。属性属性功能功能A

37、ctiveConnection指定当前使用的连接指定当前使用的连接CommandText命令的文本表达命令的文本表达(SQL语句、表名语句、表名)CommandType指定要执行的命令类型指定要执行的命令类型stateCommand对象运行状态对象运行状态Command对象属性列表对象属性列表43方法方法功能功能Cancel放弃操作放弃操作CreateParameter创建一个与命令相关的新的参数创建一个与命令相关的新的参数对象对象Excute执行指定的命令并返回生成的记执行指定的命令并返回生成的记录集录集Command对象方法列表对象方法列表44三、三、RecordSet-记录集对象记录集对

38、象 该对象代表从数据提供者那里获取的数据记该对象代表从数据提供者那里获取的数据记录集。其主要功能是建立记录集,并支持对记录录集。其主要功能是建立记录集,并支持对记录集中数据进行各种操作集中数据进行各种操作属性属性功能功能Source 记录集来源的命令和记录集来源的命令和SQL查询查询CursorLocation记录集中使用的游标的位置的常量记录集中使用的游标的位置的常量CursorType记录集中使用的游标类型的常量记录集中使用的游标类型的常量LockType加锁类型加锁类型RecordSet对象属性列表对象属性列表45四、使用四、使用ADO对象访问数据库的一般步骤:对象访问数据库的一般步骤:

39、(1)(1)创建创建ConnectionConnection对象与数据源建立连接。对象与数据源建立连接。(2)(2)创建创建CommandCommand对象,设置该对象的活动连对象,设置该对象的活动连 接是上一步的接是上一步的ConnectionConnection对象,设置命令对象,设置命令 文本属性为访问数据源所需的命令(如文本属性为访问数据源所需的命令(如 Select Select、InsertInsert、UpdateUpdate等)。等)。(3)(3)使用使用CommandCommand对象的对象的ExecuteExecute方法,该方法方法,该方法 返回一个返回一个Records

40、etRecordset对象。对象。(4)(4)使用使用RecordsetRecordset对象操作记录。对象操作记录。46五、使用五、使用ADO对象访问数据库的简化步骤:对象访问数据库的简化步骤:(1)(1)创建创建ConnectionConnection对象与数据源建立连接。对象与数据源建立连接。(2)(2)创建创建RecordsetRecordset对象,并设置好活动连接对象,并设置好活动连接 和其他重要属性。和其他重要属性。(3)(3)使用使用RecordsetRecordset对象的对象的OpenOpen方法,直接打方法,直接打 开一级记录集。开一级记录集。(4)(4)使用使用RecordsetRecordset对象操作记录。对象操作记录。47本章小结本章小结 ADOADO数据控件数据控件:介绍了用:介绍了用ADOADO数据控件数据控件实现与数据源的连接以及操作数据库实现与数据源的连接以及操作数据库数据的常用属性、方法和事件操作。数据的常用属性、方法和事件操作。数据绑定控件数据绑定控件:DataGridDataGrid、DataListDataList48

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com