C#操作access的Adodc控件案例.docx

上传人:太** 文档编号:62696106 上传时间:2022-11-22 格式:DOCX 页数:42 大小:1.37MB
返回 下载 相关 举报
C#操作access的Adodc控件案例.docx_第1页
第1页 / 共42页
C#操作access的Adodc控件案例.docx_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《C#操作access的Adodc控件案例.docx》由会员分享,可在线阅读,更多相关《C#操作access的Adodc控件案例.docx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C#操作acess数据库案例集锦在前面的章节中讲述了使用VB创立数据库应用程序的几个范例,其实作为编程语言来 说,VB易于掌握和提高,可以极为迅速和简洁的创立Windows应用程序,非常适合普通的 用户来编写符合自己需要的实用小程序。在接下来的内容中将向读者介绍几个用VB开发实 用小程序的方法,并且结合实例向读者介绍VB编程中的许多技巧。案例一我的桌面小闹钟在本例中将创立一个可以自动跟随鼠标移动的小闹钟,实时地显示当前计算机的时间, 并且允许用户添加、删除和修改定时任务,这些任务将被保存在一个Access数据库中,在 设置的时间到达时,闹钟将用音乐警报,并弹出消息框来提示用户。其功能模块图如图

2、L1 所示。二、数据库的准备通过Access或者VB可视化数据管理器创立一个Access数据库,在其中添加一个名为 “任务列表”的数据表。该数据表的结构如表1.1所示。表1.1 “任务列表”数据表的结构字段名称任务编号任务时间任务内容任务状态字段类型文本文本文本文本字段大小151510010主键是否否否三、应用程序的编写在VB中创立一个新的“标准EXE”工程,将其命名为“我的小闹钟”。在工程默认的窗体Forml中添加一个图片控件,两个标签控件,一个时间控件,依表 11.2至表11.5所示的内容设置窗体和控件的属性。10#操作acess数据库案例集锦第十一章 案例集锦域理且更改=True=”新增

3、任务”=删除任务”=修改任务”=关闭”Command4.Enabled Commandl.Caption Command2.Caption Commands.Caption Command4.CaptionAdodcl .Recordset. CancelBatch adAffect All Chapters1 取消修改Call DataGridl_ClickEnd If End SubPrivate Sub DataGridl_Click ()移动当前的任务If Not Adodcl.Recordset.RecordCount = 0 ThenMaskEdBoxl.Text = Adodcl

4、.Recordset(1)Textl.Text = Adodcl.Recordset(2)End IfUnloadMode As Integer),刷新任务列表,跟随菜单,退出菜单End SubPrivate Sub Form_QueryUnload(Cancel As Integer, Call GetAlarmtimeEnd SubPrivate Sub mnuGS_Click() GS = Not GS mnuGS.Checked = GS End SubPrivate Sub mnuQuit_Click(),卸在所有窗体,结黄程序的一种方法For Each Form In FormsU

5、nload FormNext FormEnd SubPrivate Sub mnuRW_Click ()显不任务窗体Form2.Left = (Screen.Width - Form2.Width) / 2Form2.Top = (Screen.Height - Form2.Height) / 3Forml.Left = Form2.Left - Forml.WidthForml.Top = Form2.TopForm2.ShowIf Adodcl.Recordset.RecordCount = 0 ThenIf MsgBox (当前歹(J表中没有任务。添加任务吗? ,vbQuestion +

6、 vbYesNo, 添力口任 务? )= vbYes ThenCall Commandl_ClickEnd IfExit SubEnd IfEnd Sub五、程序的运行结果在运行工程之前,需要将工程的启动对象设为SubMain,并且在工程所在目录的music子目录中添加一个名为alarmmusic.mid的MIDI文件。单击F5功能键启开工程。探例一我的桌面小闹钟11.1我的来而小闹钟域代码已更改如图1.5所示为运行中的闹钟窗体。窗体将实时地显示当前时刻,并且跟随鼠标在窗体 中移动。在窗体的任何局部右键单击,将弹出如图L6所示的快捷菜单。我的小同钟10:23:10图1.5运行中的闹钟窗体编辑任

7、务列表退出,同钟10:24:19图1.6在闹钟窗体上右键单击弹出的快捷菜单在菜单中选择“跟随鼠标”命令,使其不被选中,那么闹钟窗体将停在屏幕中,不再跟随 鼠标移动。重新选中“跟随鼠标”,那么会恢复跟随状态。在菜单中选择“任务列表”命令,将显示任务窗体,如图1.7所示。可以在该窗体中编 辑任务列表,设置后的任务列表如图L8所示。任务列表-Ini x|菜单任务闹响时间:|11:30任务内容:诘输入任务内容新增任务|删除任务|修改任务|关闭 |任务列表任务时间任务内容t态11:30诸输入任务内容未执行图1.7运行中的任务列表窗体任务列表任务时间任务内容任务状态12:30同Joaima的约会未执仃13

8、:30到机场接机未执仃12S#操作acess数据库案例集锦第十一章 案例集锦域代码已更改图1.8运行中的任务列表当到达设置时刻时,程序将播放闹铃音乐,并显示提示窗口,如图1.9所示,单击“确定”按钮后可以结束闹铃状态,任务列表中相应的记录将被显示为“已执行”。选择菜单中的“退出”命令将结束程序。提醒您有任务? 12时54分,打 给Joanna图1.9闹铃响时的提醒信息小结本例调用了 VB中附带的Multimedia MCI控件、MaskedBox控件等非标准控件和VB 编程的高级技巧一一API函数,并且结合数据库等其他技巧,创立了一个有创意且十分实用 的闹钟程序,显示了 VB在编写Window

9、s应用程序的优点。希望读者可以从中有所收获。案例二我的日记本一、概述本节将设计一个具有Windows XP界面风格,名为“我的日记本”的应用程序。这是一 个以Access数据库为基础的小巧的日记本程序,通过ADO数据控件和其相应的数据操作, 实现新建、查找、修改和删除日记等操作。通过一些并不复杂的技巧的应用,本例实现了对 Windows XP界面的仿真,大大美化了应用程序的界面,使软件的吸引力倍增。二、数据库的设计使用Microsoft Access创立一个Access数据库,命名为“我的日记本97.mdb”,保存于 本例所在目录的databases子目录中。在数据库中增加一个数据表,名为“日

10、记本”,用于保 存本例中的数据。该数据表的结构如表2.1所示。表2.1日记本数据表的结构字段名称日期天气心情内容字段类型日期/时间文本文本备注字段大小短日期2020上键是否否否探例二 我的日记本42T 的日诏本域代码已更改保存数据库和数据表,数据库的设计和创立工作完成。三、应用程序界面设计本例将创立一个Windows XP的仿真窗体,并在该窗体上实现所有的操作。完成后的窗 体界面如图2.1所示。(1)在VB中新建一个“标准EXE”工程,命名为“我的日记本”。(2)选中工程默认的窗体Forml,将其BorderStyle属性设置为O-None”,即无边框窗 体,并将其ShowInTaskBar属

11、性设置为“True”,即在任务栏中显示,该窗体将作为整个系 统界面的基础。(3)在绘图软件中翻开事先准备好的Windows XP窗体轮廓的图片,如图2.2所示,将 其复制至剪贴板中。返回VB窗口,选中窗体Forml,右键单击该窗体,在快捷菜单中选择 “粘贴”命令,将其Picture属性设置为选定的图像。调整其窗体大小至适合图片。(4)在窗体上添加两个图片框控件Picture 1和Picture2,用于作为其他控件的容器。如 表2.2所示设置这两个图片框控件的属性此时窗体如图2.3所示。表2.2图片框控件的属性名称AppearanceBackColorBorderStylePicture 1O-

12、Flat&H00FFC0C0&1-FixedSinglePicture2O-Flat&H00FFC0C0&0-None142#操作acess数据库案例集锦第十一章 案例集锦域理且更改图2.2 Windows XP窗体轮廓的图片图2.3添加图片框控件后的窗体(5)在Picture 1中添加3个标签控件、一个日期控件DTPickerl、一个文本框控件Textl 和一个组合框Combol控件,用于显示数据。在Picture2中添加两个图片框控件和一个框架 控件,作为下一步将添加的控制按钮的容器。在窗体上添加一个RichTextBox控件 RichTextBoxL用于显示日记的正文。这些控件的属性设置

13、如下表2.3至表2.5所示。此时 的窗体界面如图2.4所示。表2.3日期控件的属性名称CheckBoxFormatUpDownDTPickerlFalse1-dtpShortDateFalse探例二我的日记本的日诏本空 域代码已更诙日期:103-6-5 天气:心情:表2.4图片框控件的属性名称AppearanceBackColorBorderStyleIndexPicBoxO-Flat&H00FFC0C0&1-FixedSingle0PicBoxO-Flat&H00FFC0C0&1-FixedSingle1表2.5框架控件的属性名称AppearanceBackColorBorderStyleC

14、aptionFrame 1O-Flat&H00FFC0C0&1-FixedSingle消息消息图2.4添加数据显示控件后的窗体(6)在窗体上添加9个图像控件,用于保存程序中需要的三种按钮的图片,这些图片的 说明如表2.6所示。此时的窗体如图2.5所示。图2.5在窗体上添加图像控件表2.6图像控件的属性和说明名称BorderStyleIndex图片说明ImageButtonlO-None0普通按钮正常状态ImageButtonlO-None1普通按钮焦点状态ImageButtonlO-None2普通按钮按下状态ImageButton2O-None0标题按钮正常状态ImageButton2O-No

15、ne1标题按钮焦点状态ImageButton2O-None2标题按钮按下状态ImageButton3O-None0关闭按钮正常状态ImageButton3O-None1关闭按钮焦点状态ImageButton3O-None2关闭按钮按下状态1616C#操作acess数据库案例集锦第!-一章 案例集锦域代码已更改(7)在PicBox(O)和PicBox(l)中添加8个图片框控件,并在这8个图片框控件中添加8 个标签按钮,从而实现用图片框来模拟按钮,这些控件的属性如表2.7所示。在窗体中添加 一个ADO数据控件,作为整个程序的数据源,其属性将有代码来设置。设置好的窗体如图 2.6所示。图2.6在窗体

16、中添加图片框模拟按钮表2.7控件的属性标签控件名称IndexBackStyleCaption所在图片框Label50O-Transparent我想写新日记Pictitle(O)Label40O-Transparent保存新日记Picbutton(O)Label41O-Transparent取消保存Picbutton(l)Label51O-Transparent我要查旧口记Pictitle(l)Label42O-Transparent修改日记Picbutton(2)Label43O-Transparent删除日记Picbutton(3)Label44O-Transparent保存修改Picbut

17、ton(4)Label45O-Transparent取消修改Picbutton(5)滦例二我的日记本心一我的日记本业 域代码已更改对窗体中的控件调整大小和布局,即可完成窗体界面的设计。四、程序的代码本例的代码分为两个局部,窗体Forml的代码和模块的代码。其中模块的代码主要功 能为创立不规那么窗口,以下是两局部的代码。1.窗体Forml的代码Dim moveform As BooleanDim mouseX As LongDim mouseY As LongDim newDiary As BooleanDim OpenDiary As Boolean,声明变量,窗体是否移动,声明变量,鼠标的X

18、坐标,声明变量,鼠标的Y坐标,声明变量,是否正在编辑新日记,声明变量,是否有日记文件翻开Private Sub Form_Load()Call ShapeForm(Me, RGB (255, 0, 255),调用过程,创立不规那么窗口,声明数据源AdodclConnectionstring = nPROVIDER=Microsoft.Jet.OLEDB.3.51;DataSource= & App. Path & databases我的日记本 97 .mdb; ”Adodcl .Recordsource = select 日期,天气,心T青,内容 from 日i己表 Order by 日期”

19、Adodcl.Refresh ,变量的初始赋值moveform = False newDiary = FalseOpenDiary = False,设置控件的属性LblMessage . Caption = 欢迎使用! ! ! ! ! ”Textl.Locked = TrueCombol.Locked = TrueRichTextBoxl.Locked = TrueFor i = 1 To 1050PicBox(O).Height = PicBox(O).Height - 1Next iFor i = 1 To 2000PicBox(l).Height = PicBox(l).Height -

20、 1Next i,日期控件内容改变时,编辑新日记,退出过程,查找日记,存在日记文件时End SubPrivate Sub DTPickerl_Change()If newDiary = True ThenExit SubElseIf Adodcl.Recordset.RecordCount 0 Then ,搜索日记Adodcl.Recordset. Find “日期 = & CStr (DTPickerl .Value)If Adodcl. Recordset. EOF Then,未找至U 日 t己BeepLblMessage . Caption = 未找至U相应记录”DTPickerl.Va

21、lue = DateTextl.Text =18#操作acess数据库案例集锦第十一章 案例集锦域理且更改Combol.Text =RichTextBoxl.Text = n,显示信息,显示数据,显示数据,显示数据,显示数据,设置变量,不存在任何日记,显示信息,显示数据,显示数据,显示数据,显示数据,设置变量,不存在任何日记Else ,找到了日记LblMessage . Caption = ”找至U了!费了我好大的劲” DTPickerl.Value = Adodcl.Recordset(0) Textl.Text = Adodcl.Recordset(1)Combol.Text = Adod

22、cl.Recordset(2) RichTextBoxl.Text = Adodcl.Recordset(3) OpenDiary = True End IfElseBeepLblMessage . Caption = 没有日 t己存在! ” End If End If End Sub,在窗体上按下鼠标按钮时Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)IfButton =1Then,如果是鼠标左键moveform=True,设置变量mouseX =X,得到当前鼠

23、标位置mouseY = Y End If End Sub,在窗体上移动鼠标时Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)If moveform Then,如果是移动窗口(鼠标按钮按下),计算新的窗体坐标值 CurrX = Me.Left - mouseX + X CurrY = Me.Top - mouseY + Y ,移动窗体到新的位置 Me.Move CurrX, CurrY Else,不是移动窗口PicClose . Picture = Imagebut

24、ton3 (0) . Picture设置关I田按钮的图片.End If End Sub,在窗体上抬起鼠标按钮Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) moveform = False设置变量End SubPrivate Sub Label4_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)Call PicButton_MouseDo

25、wn(Index, Button, Shift, X, Y) End SubPrivate Sub Label4 MouseMove(Index As Integer, Button As Integer, Shift滦例二我的日记木心一我的日记本滦例二我的日记木心一我的日记本空 域代码已更改As Integer, X As Single, Y As Single)Call PicButton_MouseMove(Index, Button, Shift, X, Y) End SubPrivate Sub Label4_MouseUp(Index As Integer, Button As I

26、nteger, Shift As Integer, X As Single, Y As Single)Call PicButton_MouseUp(Index, Button, Shift, X, Y)End SubPrivate Sub Label5_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)Call PicTitle_MouseDown(Index, Button, Shift, X, Y) End SubPrivate Sub Label5_Mouse

27、Move(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)Call PicTitle_MouseMove(Index, Button, Shift, X, Y) End SubPrivate Sub Label5_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Call PicTitle_MouseUp(Index, Button, Shift, X, Y

28、) End SubPrivate Sub PicBox_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single),在控件数组上移动鼠标,设置图片 PicTitle(0).Picture = ImageButton2(0).Picture PicTitle(l).Picture = ImageButton2(0).Picture For i = 0 To 5 PicButton(i).Picture = ImageButtonl(0).Picture Next i End

29、SubPrivate Sub PicButton_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ,设置图片PicButton(Index).Picture = ImageButtonl(2) End SubPrivate Sub PicButton_MouseMove(Index As Integer, Button As Integer, Shift As IntegerA X As Single, Y As Single) ,设置图片If Button =

30、 1 ThenPicButton(Index).Picture = ImageButtonl(2)ElsePicButton(Index).Picture = ImageButtonl(1)End IfEnd SubPrivate Sub PicButton_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ,设置图片域代码已更改域代码已更改C#操作acess数据库案例集锦第!-一章 案例集锦表1.2窗体Forml的属性名称BorderStyleShowInTaskB

31、arForml0-NoneFalse表L3图片控件的属性名称AppearanceBackColorBorderStylePicture1O-Flat&H00FF8080&1-FixedSingle表1.4标签控件的属性名称AlignmentBackStyleBorderStyleCaptionForeColorLabel 12-CenterO-Transparent0-None我的小闹钟&H00FFFFFF&Label22-CenterO-Transparent0-None00:00:00&H80000012&表L5时间控件的属性名称EnableIntervalTimer 1True100在控

32、件箱窗体的空白局部右键单击,在弹出的菜单中选择“部件”,将翻开“部件”对 话框,如图L2所示。图1.2“部件”对话框在“部件”对话框中选择“控件”选项卡,在其列表中找到“Microsoft Multimedia Control 6.0,在其前方的复选框中打勾,单击“确定”按钮,向工程中添加对MutimediaMCI控件 的引用。在控件箱的最后将出现Mutimedia MCI控件的图标,选中其图标,在Forml中绘 出其实例,如图L3所示,其属性将在代码中设置。20#操作acess数据库案例集锦第十一章 案例集锦域代码已更改PicButton(Index).Picture = ImageButt

33、onl(0) ,执行操作 Select Case IndexCase 0 ”呆存新日记If newDiary = True Then ,检查是否已存在日记If Adodcl.Recordset.RecordCount 0 Then Adodcl. Recordset . MoveFirst End IfAdodcl.Recordset. Find “日期 = & CStr (DTPickerl .Value) If Not Adodcl. Recordset.EOF Then当天日记已存在Beep LblMessage .Caption = ”当天的口记已经存在!”Exit Sub End I

34、f ,当天日记不存在,添加记录Adodcl. Recordset.AddNewAdodcl.Recordset(0) = DTPickerl.ValueAdodcl.Recordset(1) = Textl.TextAdodcl.Recordset(2) = Combol.TextAdodcl.Recordset(3) = RichTextBoxl.TextAdodcl.Recordset.UpdateBatch adAffeetAllChapters LblMessage . Caption =保存日记成功! ”newDiary = False Textl.Locked = True Com

35、bol.Locked = True RichTextBoxl.Locked = True OpenDiary = True Else,没有新建日记Beep LblMessage.Caption = 没有事请别乱点!添乱!” End IfCase 1,取消新日记If newDiary = True Then,存在新日记Adodcl.Recordset.CancelBatch adAffeetAlIChapters LblMessage .Caption = ”已经取 1肖新日t己! ”newDiary = False DTPickerl.Value = Date Textl.Text = Com

36、bol.Text = RichTextBoxl.Text = Textl.Locked = True Combol.Locked = True RichTextBoxl.Locked = True Else,不存在新日记BeepLblMessage . Caption = 没有事请别乱点!添乱!” End If Case 2 修改口记 If OpenDiary = False Then LblMessage . Caption = 没有翻开任何日记!” Exit Sub Else滦例二我的日记木心一我的日记本生 域代码已更改Textl.Locked = FalseCombol.Locked =

37、 FalseRichTextBoxl.Locked = FalseLblMessage . Caption = ”现在可以修改日记了!” End If Case 3 ,删除日记If OpenDiary = False ThenLblMessage . Caption = 没有翻开任何日记! ”Exit SubElseAdodcl. Recordset.DeleteAdodcl.RefreshLblMessage . Caption = 删除口 记成功!”OpenDiary = FalseEnd IfCase 4 ,保存修改If OpenDiary = False ThenLblMessage

38、. Caption = 没有翻开任何日记!”Exit SubElseAdodcl.Recordset(0) = DTPickerl.ValueAdodcl.Recordset(1) = Textl.TextAdodcl.Recordset(2) = Combol.TextAdodcl.Recordset(3) = RichTextBoxl.TextAdodcl.Recordset.UpdateBatch adAffeetAllChaptersLblMessage . Caption =保存修改日记成功! nEnd If Case 5 ,取消修改If OpenDiary = False Then

39、LblMessage . Caption = 没有翻开任何日记!”Exit Sub ElseLblMessage . Caption = n已经取消修改日记!“Textl.Locked = TrueCombol.Locked = TrueRichTextBoxl.Locked = TrueEnd If End Select End SubPrivate Sub PicClose_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ,设置图片 PicClose.Picture = Imagebutton

40、3(2).Picture End SubPrivate Sub PicClose_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single),设置图片If Button = 1 ThenPicClose.Picture = Imagebutton3(2).PictureElsePicClose.Picture = Imagebutton3(1).Picture2222#操作acess数据库案例集锦第十一章 案例集锦域代码已更改End If End SubPrivate Sub PicClose_MouseUp

41、(Button As Integer, Shift As Integer, X As Single, Y As Single) ,设置图片 PicClose.Picture = Imagebutton3(0).Picture ,执行动作 If newDiary = True ThenLblMessage . Caption = 当前日记没有保存!请您保存修改或者取消修改。” Exit Sub Else Unload Me End If End SubPrivate Sub PicTitle_MouseDown(Index As Integer, Button As Integer, Shift

42、 As Integer, X As Single, Y As Single) ,设置图片 PicTitle(Index).Picture = ImageButton2(2).Picture End SubPrivate Sub PicTitle_MouseMove (Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ,设置图片 If Button = 1 Then PicTitle(Index).Picture = ImageButton2(2).Picture Else PicTi

43、tle(Index).Picture = ImageButton2(1).Picture End If End SubPrivate Sub PicTitle_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ,设置图片 PicTitle(Index).Picture = ImageButton2(0).Picture 1执行动作 Select Case IndexCase 0,新建日记 If newDiary = True Then BeepLblMessage .

44、 Caption = n当前还有未保存的日记!”Exit Sub End IfIf PicBox(O) .Height 500 Then缩回歹lj表For i = 1 To 2000 PicBox(l).Height = PicBox(l).Height - 1 Next i域代码已更改滦例二我的日记木心一我的日记本End If f添加日记 newDiary = True Textl.Locked = False Combol.Locked = False RichTextBoxl.Locked = False LblMessage . Caption = n准备开动写日记!“DTPicker

45、l.Value = Date Textl. Text = 天气如何?” Combol. Text = 心情好吗?” RichTextBoxl.Text = n今天要写什么呢?告诉我啊!”Case 1 ,查找日记 If newDiary = True Then Beep LblMessage . Caption = ”当前还有未保存的日记! ” Exit Sub End If If PicBox(O) .Height 500 ThenF攵回歹ll表For i = 1 To 1050 PicBox(O) .Height = PicBox(O) .Height - 1 Next i End If If PicBox(l) .Height 500 Then弹出歹U表For i = 1 To 2000 PicBox(l).Height = PicBox(l).Height + 1 Next i End If LblMessage . Caption = ”请在日期栏中选择日期。” End Select End Sub2.模块的代码在工程中添加一个模块,命名为Mdl_shapeform。其代码为:Public Declare Function GetPix

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

当前位置:首页 > 应用文书 > 解决方案

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁