日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

VB.NET通讯录源代码

發(fā)布時間:2024/1/17 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VB.NET通讯录源代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

利用VB.NET制作通訊錄(使用ACCESS數據庫)

一、創(chuàng)建應用程序TXL

創(chuàng)建基于VB.NetWindows應用程序TXL,保存到指定的文件夾下。

二、創(chuàng)建數據庫

1、創(chuàng)建ACCESS數據庫TXL,在數據庫中創(chuàng)建表txl,結構如下

將表保存到應用程序TXL所在的文件夾下

2、可以在數據庫中輸入測試用的數據

三、創(chuàng)建應用程序界面

1、創(chuàng)建應用程序界面如下圖所示

2、各控件的命名規(guī)則

除標簽、GroupBox外,其他都是漢語拼音首字母大寫,從上到下,從左到右依次為:

XM、CSRQZZ、XZZ、QQ1、QQ2EMail1、EMail2、MSN、ZPSJLTJJL、SYT、XGJLXYTBCJL、WJL、SCJL

四、創(chuàng)建數據連接

1、添加OleDbDataAdapter數據適配器

打開窗體設計界面,在工具箱的常欄(其他欄也可以)的空白區(qū)域單擊鼠標右鍵,選擇【選擇項】,在彈出的選擇工具箱對話框中找到OleDbDataAdapter,如下圖所示

先在篩選器中輸入ole,然后在對話框中勾選OleDbDataAdapter,單擊確定按鈕即可。這時在工具箱的常規(guī)欄中多了一個OleDbDataAdapter,如下圖所示:

2、添加數據適配器到窗體

拖動OleDbDataAdapter控件到窗體,此時會自動彈出數據適配器配置向導對話框,在對話框中單擊【新建連接】按鈕。在彈出的添加連接對話框中,單擊更改按鈕如下圖所示:

在彈出的更改數據源對話框中選擇Microsoft Access數據庫文件,如下圖所示:

單擊確定按鈕,然后出現(xiàn)添加連接對話框,單擊瀏覽按鈕找到項目文件夾下剛剛創(chuàng)建的TXL數據庫,然后單擊測試連接按鈕,如果出現(xiàn)測試連接成功字樣則數據源添加成功!!

注意:如果測試連接時出現(xiàn) 未指定的錯誤 ,這時把VB.NetAccess全部關閉再重新打開VB.Net程序,應該可以連接成功,個人感覺應該是并發(fā)連接過多的問題

單擊確定按鈕關閉添加連接對話框,此時可以看到如下圖所示的連接字符串,即

Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|\TXL.mdb

注意:這里的DataDirectory是指應用程序所在的文件夾,即項目文件夾下的Bin文件夾的下DebugRelease文件夾(若應用程序是調試版本則在Debug下,是發(fā)布版則在Release下)。

然后在數據適配器配置向導對話框中單擊下一步按鈕,此時會彈出是否復制數據文件到項目輸出目錄中的對話框,單擊按鈕

接下來會提示數據庫已經在項目中,是否覆蓋,選擇否(數據庫文件保存在項目文件夾中,所以不需要覆蓋)

在選擇命令類型部分直接按默認選項,然后單擊下一步按鈕即可。

在生成SQL語句對話框中,單擊查詢生成器按鈕,如下圖所示:

在查詢生成器界面,將txl表添加到查詢設計器中,并勾選所有列,如下圖所示。然后單擊確定按鈕關閉查詢設計器,返回到生成SQL語句界面。

在查詢設計器關閉后返回到生成SQL語句對話框界面時,單擊下一步按鈕則會彈出生成結果對話框,如下圖所示:此時系統(tǒng)已經自動生成了對數據庫進行選擇、插入、更新和刪除相對應的語句,用戶不需要再為此擔心。

單擊完成按鈕關閉對話框即可。此時系統(tǒng)會自動添加一個OleDbConnection控件到窗體下部。

3、生成數據集

右鍵單擊OleDbDataAdapter,在彈出的對話框上單擊生成數據集項,然后彈出生成數據集對話框,保持默認單擊確定按鈕即可,此時系統(tǒng)會自動添加DataSet11到窗體下部。

4、綁定數據到控件

.Net中大部分控件都可以進行綁定??梢赃M行數據綁定的控件都具有DataBindings屬性,其中的Text部分是指該控件進行數據綁定后顯示的內容,Tag是作為內部存儲的部分(個人認為)。將XM文本框的DataBindings部分的Text設置為項目數據源下的Form1列表實例的DataSet11下的txl表的姓名字段,如下圖所示:

可以按照此方法,將其他控件(除照片)外分別綁定到相應的字段上。

5、編寫代碼完成數據的顯示

此時如果直接運行程序則會發(fā)現(xiàn)界面上并沒有預料的數據出現(xiàn)。原因在于未將數據填充到數據集中。

在窗體的Form_Load事件中添加如下事件處理代碼

Public Class Form1

??? PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load

??????? OleDbDataAdapter1.Fill(DataSet11,"txl") '此處的表名txl與界面上進行綁定時應該一致

???? ?? ZP.ImageLocation= DataSet11.Tables("txl").Rows(0).Item("照片")

??? EndSub

End Class

6、完成記錄移動

要想實現(xiàn)記錄的移動,需要使用BindingManagerBase來實現(xiàn)綁定數據控件與數據集之間的關聯(lián)和移動。因為記錄移動過程中各個按鈕都需要使用,所以需要在窗體作用范圍內聲明該變量。

同時在記錄移動的過程中,照片框要根據數據集中記錄的位置中保存的照片文件的路徑來加載相應的圖片文件,此時需要從記錄集的數據表中取出相應行的照片位置,然后將之加載的圖片框中。

Public Class Form1

???Dim bmdata AsBindingManagerBase

??? '首記錄按鈕事件處理程序

??? PrivateSub SJL_Click(ByValsender As System.Object, ByVal e AsSystem.EventArgs) Handles SJL.Click

??????? bmdata.Position = 0 '第一條記錄

??????? ZP.ImageLocation = DataSet11.Tables("txl").Rows(bmdata.Position).Item("照片") '照片需要單獨處理

??? EndSub

??? '上一條按鈕事件處理程序

??? PrivateSub SYT_Click(ByValsender As System.Object, ByVal e AsSystem.EventArgs) Handles SYT.Click

??????? Ifbmdata.Position > 0 Then '當記錄未到首部時可以向前移動一條,并顯示照片

??????????? bmdata.Position = bmdata.Position -1

??????????? ZP.ImageLocation =DataSet11.Tables("txl").Rows(bmdata.Position).Item("照片")

??????? EndIf

??? EndSub

??? '下一條按鈕事件處理程序

??? PrivateSub XYT_Click(ByValsender As System.Object, ByVal e As System.EventArgs)Handles XYT.Click

??????? Ifbmdata.Position < bmdata.Count - 1 Then '當記錄未到尾部時可以向后移動一條并顯示照片

??????????? bmdata.Position =bmdata.Position + 1

??????????? ZP.ImageLocation =DataSet11.Tables("txl").Rows(bmdata.Position).Item("照片")

??????? EndIf

??? EndSub

??? '尾記錄按鈕事件處理程序

??? PrivateSub WJL_Click(ByValsender As System.Object, ByVal e AsSystem.EventArgs) Handles WJL.Click

??????? bmdata.Position =bmdata.Count - 1

??????? ZP.ImageLocation =DataSet11.Tables("txl").Rows(bmdata.Position).Item("照片")

End Sub

End Class

7、數據庫的進一步處理

對于要處理的數據庫來說,應當保持當前的數據為最新的。在前面添加數據源到項目中時,系統(tǒng)詢問是否將數據庫復制到輸出目錄中,當時選擇的結果為。在測試程序運行過程中可以發(fā)現(xiàn),如果用戶對數據庫的內容作為改動(如插入、刪除或更新了數據),下次程序再運行時又和原始的狀態(tài)一樣。這并不是程序的錯誤,而是數據庫復制時選項未設置好。如果設置為始終復制,則不管程序運行時如何改變,下次程序運行時仍會將項目文件夾下的數據庫復制到輸出目錄,此時會將剛剛修改過的數據庫變?yōu)樵紨祿?#xff0c;這種狀態(tài)直到將整個程序發(fā)布之后才會正常。所以此處需要選擇,如果較新則復制,這樣當原始數據庫的數據比輸出文件夾中的數據庫數據更新時才會復制(第一次時因為輸出文件夾下沒有數據庫,所以會直接復制;以后輸出文件夾中的數據庫內容較新,而項目文件夾中的數據庫內容則較舊所以不會再進行復制,也就不會出現(xiàn)覆蓋掉新內容的情況了)。

五、實現(xiàn)數據處理功能

1、編寫綁定數據到控件的通用過程

這個過程用于實現(xiàn)將數據集中的數據綁定到數據集的數據表txl的相應列上。因為已經在界面上完成了綁定工作,所以這個過程只用作編寫代碼完成綁定的參考。

??? PrivateSub BindDataToControl()

??????? XM.DataBindings.Add("text", DataSet11, "txl.姓名")

??????? CSRQ.DataBindings.Add("text", DataSet11, "txl.出生日期")

??????? ZZ.DataBindings.Add("text", DataSet11, "txl.住址")

??????? XZZ.DataBindings.Add("text", DataSet11, "txl.現(xiàn)住址")

??????? QQ1.DataBindings.Add("text", DataSet11, "txl.QQ1")

??????? QQ2.DataBindings.Add("text", DataSet11, "txl.QQ2")

??????? MSN.DataBindings.Add("text", DataSet11, "txl.MSN")

??????? EMail1.DataBindings.Add("text", DataSet11, "txl.EMail1")

??????? EMail2.DataBindings.Add("text", DataSet11, "txl.EMail2")

??? EndSub

?2、編寫設置控件是否可用的通用過程

?PrivateSub EnableControl(ByValflag As Boolean)


??????? XM.Enabled = flag

??????? CSRQ.Enabled = flag

??????? ZZ.Enabled = flag

??????? XZZ.Enabled = flag

??????? QQ1.Enabled = flag

??????? QQ2.Enabled = flag

??????? EMail1.Enabled = flag

??????? EMail2.Enabled = flag

??????? MSN.Enabled = flag

??????? ZP.Enabled = flag


??? EndSub

3、編寫保存數據到數據庫的通用過程

將數據保存到數據庫時,首先需要將BindingManagerBase對象的當前編輯結束,然后調用數據適配器的Update方法來實現(xiàn)數據集到數據庫的更新過程。

?? PublicSub SaveChanges()? '更新數據集自定義過程

??????? bmdata.EndCurrentEdit()?? '停止當前的任何編輯

???????OleDbDataAdapter1.Update(DataSet11)

??? End Sub

4、完成添加、修改、保存和刪除記錄按鈕事件處理程序

1)添加記錄按鈕事件處理程序

添加記錄時首先需要將控件可用,然后需要結束BindingManagerBase的當前編輯狀態(tài),記照片為空,最后需要添加一個新行到BindingManagerBase中。

??? PrivateSub TJJL_Click(ByValsender As System.Object, ByVal e AsSystem.EventArgs) Handles TJJL.Click

??????? EnableControl(True) '使控件可用

??????? bmdata.EndCurrentEdit() '結束現(xiàn)有編輯

??????? ZP.ImageLocation = ""

??????? bmdata.AddNew() '添加新行

??? EndSub

(2)保存記錄按鈕事件處理程序

保存時必須結束當前編輯,這一步非常重要。只有結束BindingManagerBase的當前編輯狀態(tài),其添加新行操作才算結束,這樣在數據集的數據表中才會增加相應的新行,才可以將新行的照片列設置為圖片框中圖片的位置(如果是修改的話則不會出現(xiàn)問題);之后再將數據集的內容更新回數據庫即可。

保存記錄回數據庫時,照片信息與其他數據不一樣,不是綁定的,因此在保存之前,首先需要將照片對應的文件信息保存到數據集的數據表的相應行的對應列之后才能保存回數據庫。

??? PrivateSub BCJL_Click(ByValsender As System.Object, ByVal e AsSystem.EventArgs) Handles BCJL.Click

???????bmdata.EndCurrentEdit()

???????DataSet11.Tables("txl").Rows(bmdata.Position).Item("照片") = ZP.ImageLocation

??????? SaveChanges() '保存更改

??????? EnableControl(False) '恢復控件不可用

??? EndSub

(3)修改記錄按鈕事件處理程序

這一步比較簡單,就是讓控件可用,此時用戶可以修改,然后保存即可。

??? PrivateSub XGJL_Click(ByValsender As System.Object, ByVal e As System.EventArgs)Handles XGJL.Click

??????? EnableControl(True) '控件可用

??? EndSub

(4)刪除記錄按鈕事件處理程序

刪除記錄之后,需要將照片顯示為與當前記錄相符的內容。

??? PrivateSub SCJL_Click(ByValsender As System.Object, ByVal e AsSystem.EventArgs) Handles SCJL.Click

??????? bmdata.RemoveAt(bmdata.Position)'刪除當前位置元素

??????? SaveChanges()

??????? ZP.ImageLocation =DataSet11.Tables("txl").Rows(bmdata.Position).Item("照片")

??? End Sub

5、雙擊照片框實現(xiàn)加載圖片事件處理程序

首先需要在工具箱的對話框項內拖動一個OpenFileDialog控件到窗體上。在代碼中設置其只能打開.jpg圖片文件,如果用戶在文件框中選擇了圖片文件則將之加載的圖片框中。此過程需要與保存記錄按鈕事件處理程序相輔。

??? PrivateSub ZP_DoubleClick(ByValsender As System.Object, ByVal e AsSystem.EventArgs) Handles ZP.DoubleClick

??????? OpenFileDialog1.Filter = "圖片文件(*.jpg)|*.jpg|所有文件(*.*)|*.*"

??????? OpenFileDialog1.ShowDialog()

??????? IfOpenFileDialog1.FileName <> ""Then

??????????? ZP.ImageLocation =OpenFileDialog1.FileName

??????? EndIf

??? End Sub

6、修改窗體加載事件處理程序

窗體加載時只顯示數據,此時不能編輯數據。

??? PrivateSub Form1_Load(ByValsender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load

??????? OleDbDataAdapter1.Fill(DataSet11,"txl") '此處的表名txl與界面上進行綁定時應該一致

??????? ZP.ImageLocation =DataSet11.Tables("txl").Rows(0).Item("照片") '初始時照片顯示為第一條記錄的內容

??????? bmdata =BindingContext(DataSet11, "txl") '創(chuàng)建BindingManagerBase對象

??????? EnableControl(False) '所有控件不能用

??? End Sub


轉載于:https://blog.51cto.com/8935291/1566382

總結

以上是生活随笔為你收集整理的VB.NET通讯录源代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。