国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

C#數(shù)據(jù)庫編程2

C#數(shù)據(jù)庫編程2

更新時間:2022-05-04 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

四.插入數(shù)據(jù)記錄: </P><P>  對數(shù)據(jù)庫進(jìn)行插入記錄操作和刪除記錄操作基本的思路是一致的,就是通過ADO.NET首先插入數(shù)據(jù)記錄到數(shù)據(jù)庫,然后對"DataSet"對象進(jìn)行必要的修改。下列代碼就是以Access 2000數(shù)據(jù)庫為模型修改當(dāng)前記錄的代碼: </P><P>protected void Update_record ( object sender , System.EventArgs e )
{

int i = myBind.Position ;

try{

file://連接到一個數(shù)據(jù)庫

string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb " ;

OleDbConnection myConn = new OleDbConnection ( strCon ) ;

myConn.Open ( ) ;

myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . BeginEdit ( ) ;

file://從數(shù)據(jù)庫中修改指定記錄

string strUpdt = " UPDATE person SET xm = '"

+ t_xm.Text + "' , xb = '"

+ t_xb.Text + "' , nl = "

+ t_nl.Text + " , zip = "

+ t_books.Text + " WHERE id = " + t_id.Text ;

OleDbCommand myCommand = new OleDbCommand ( strUpdt , myConn ) ;

myCommand.ExecuteNonQuery ( ) ;

myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . EndEdit ( ) ;

myDataSet.Tables [ "person" ] . AcceptChanges ( ) ;

myConn.Close ( ) ;

}

catch ( Exception ed )

{

MessageBox.Show ( "修改指定記錄錯誤: " + ed.ToString ( ) , "錯誤!" ) ;

}

myBind.Position = i ;

} </P><P>  由于對Sql Server 2000數(shù)據(jù)記錄修改操作和Access 2000數(shù)據(jù)記錄修改操作的差異只在于不同的數(shù)據(jù)鏈接,具體的代碼可以參考"刪除數(shù)據(jù)記錄"中的代碼,在這里就不提供了。



五.插入數(shù)據(jù)記錄:



  和前面二種操作在思路是一致的,就是通過ADO.NET首先插入數(shù)據(jù)記錄到數(shù)據(jù)庫,然后對"DataSet"對象進(jìn)行必要的修改。下列代碼就是以Access 2000數(shù)據(jù)庫為模型插入一條數(shù)據(jù)記錄的代碼



protected void Insert_record ( object sender , System.EventArgs e )

{

try

{

file://判斷所有字段是否添完,添完則執(zhí)行,反之彈出提示

if ( t_id.Text != "" && t_xm.Text != "" && t_xb.Text != "" && t_nl.Text != "" && t_books.Text != "" )

{

string myConn1 = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;

OleDbConnection myConn = new OleDbConnection ( myConn1 ) ;

myConn.Open ( ) ;

string strInsert = " INSERT INTO person ( id , xm , xb , nl , zip ) VALUES ( " ;

strInsert += t_id.Text + ", '" ;

strInsert += t_xm.Text + "', '" ;

strInsert += t_xb.Text + "', " ;

strInsert += t_nl.Text + ", " ;

strInsert += t_books.Text + ")" ;

OleDbCommand inst = new OleDbCommand ( strInsert , myConn ) ;

inst.ExecuteNonQuery ( ) ;

myConn.Close ( ) ;

myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . BeginEdit ( ) ;

myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . EndEdit ( ) ;

myDataSet.Tables [ "person" ] . AcceptChanges ( ) ;

}

else

{

MessageBox.Show ( "必須填滿所有字段值!" , "錯誤!" ) ;

}

}

catch ( Exception ed )

{

MessageBox.Show ( "保存數(shù)據(jù)記錄發(fā)生 " + ed.ToString ( ) , "錯誤!" ) ;

}

}



  同樣對Sql Server 2000數(shù)據(jù)庫進(jìn)行插入記錄操作和Access 2000數(shù)據(jù)庫插入記錄操作的差異也只在于不同的數(shù)據(jù)鏈接,具體的代碼可以參考"刪除數(shù)據(jù)記錄"中的代碼,在這里就不提供了。

  六.Visual C#數(shù)據(jù)庫編程的完成源代碼和程序運(yùn)行的主界面:



  掌握了上面要點(diǎn),編寫一個完整的數(shù)據(jù)庫編程的程序就顯得非常容易了,下面是Visual C#進(jìn)行數(shù)據(jù)庫編程的完整代碼(Data01.cs),此代碼是以Access 2000數(shù)據(jù)庫為模型設(shè)計(jì)的,具體如下:



using System ;

using System.Drawing ;

using System.ComponentModel ;

using System.Windows.Forms ;

using System.Data.OleDb ;

using System.Data ;



public class Data : Form

{

private System.ComponentModel.Container components = null ;

private Button lastrec ;

private Button nextrec ;

private Button previousrec ;

private Button firstrec ;

private TextBox t_books ;

private TextBox t_nl ;

private ComboBox t_xb ;

private TextBox t_xm ;

private TextBox t_id ;

private Label l_books ;

private Label l_nl ;

private Label l_xb ;

private Label l_xm ;

private Label l_id ;

private Label label1 ;

private DataSet myDataSet ;

private Button button1 ;

private Button button2 ;

private Button button3 ;

private Button button4 ;

private BindingManagerBase myBind ;



public Data ( )

{

file://連接到一個數(shù)據(jù)庫

GetConnected ( ) ;

// 對窗體中所需要的內(nèi)容進(jìn)行初始化

InitializeComponent ( ) ;

}

file://清除在程序中使用過的資源

protected override void Dispose( bool disposing )

{

if( disposing )

{

if ( components != null )

{

components.Dispose ( ) ;

}

}

base.Dispose( disposing ) ;

}

public static void Main ( )

{

Application.Run ( new Data ( ) ) ;

}

public void GetConnected ( )

{

try

{

file://創(chuàng)建一個 OleDbConnection

string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;

OleDbConnection myConn = new OleDbConnection ( strCon ) ;

string strCom = " SELECT * FROM person " ;

file://創(chuàng)建一個 DataSet

myDataSet = new DataSet ( ) ;



myConn.Open ( ) ;

file://用 OleDbDataAdapter 得到一個數(shù)據(jù)集

OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;

file://把Dataset綁定books數(shù)據(jù)表

myCommand.Fill ( myDataSet , "person" ) ;

file://關(guān)閉此OleDbConnection

myConn.Close ( ) ;

}

catch ( Exception e )

{

MessageBox.Show ( "連接錯誤! " + e.ToString ( ) , "錯誤" ) ;

}

}

private void InitializeComponent ( )

{



file://添加控件,略



this.Name = "Data" ;

this.Text = "Visual C#的數(shù)據(jù)庫編程!" ;

this.ResumeLayout(false) ;

myBind = this.BindingContext [ myDataSet , "person" ] ;

}

protected void New_record ( object sender , System.EventArgs e )

{

t_id.Text = ( myBind.Count + 1 ).ToString ( ) ;

t_xm.Text = "" ;

t_xb.Text = "" ;

t_nl.Text = "" ;

t_books.Text = "" ;

}

protected void Insert_record ( object sender , System.EventArgs e )

{

try

{

file://判斷所有字段是否添完,添完則執(zhí)行,反之彈出提示

if ( t_id.Text != "" && t_xm.Text != "" && t_xb.Text != "" && t_nl.Text != "" && t_books.Text != "" )

{

string myConn1 = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;

OleDbConnection myConn = new OleDbConnection ( myConn1 ) ;

myConn.Open ( ) ;

string strInsert = " INSERT INTO person ( id , xm , xb , nl , zip ) VALUES ( " ;

strInsert += t_id.Text + ", '" ;

strInsert += t_xm.Text + "', '" ;

strInsert += t_xb.Text + "', " ;

strInsert += t_nl.Text + ", " ;

strInsert += t_books.Text + ")" ;

OleDbCommand inst = new OleDbCommand ( strInsert , myConn ) ;

inst.ExecuteNonQuery ( ) ;

myConn.Close ( ) ;

myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . BeginEdit ( ) ;

myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . EndEdit ( ) ;

myDataSet.Tables [ "person" ] . AcceptChanges ( ) ;

}

else

{

MessageBox.Show ( "必須填滿所有字段值!" , "錯誤!" ) ;

}

}

catch ( Exception ed )

{

MessageBox.Show ( "保存數(shù)據(jù)記錄發(fā)生 " + ed.ToString ( ) , "錯誤!" ) ;

}

}

protected void Update_record ( object sender , System.EventArgs e )

{

int i = myBind.Position ;

try{

file://連接到一個數(shù)據(jù)庫

string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb " ;

OleDbConnection myConn = new OleDbConnection ( strCon ) ;

myConn.Open ( ) ;

myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . BeginEdit ( ) ;

file://從數(shù)據(jù)庫中修改指定記錄

string strUpdt = " UPDATE person SET xm = '"

+ t_xm.Text + "' , xb = '"

+ t_xb.Text + "' , nl = "

+ t_nl.Text + " , zip = "

+ t_books.Text + " WHERE id = " + t_id.Text ;

OleDbCommand myCommand = new OleDbCommand ( strUpdt , myConn ) ;

myCommand.ExecuteNonQuery ( ) ;

myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . EndEdit ( ) ;

myDataSet.Tables [ "person" ] . AcceptChanges ( ) ;

myConn.Close ( ) ;

}

catch ( Exception ed )

{

MessageBox.Show ( "修改指定記錄錯誤: " + ed.ToString ( ) , "錯誤!" ) ;

}

myBind.Position = i ;

}



protected void Delete_record ( object sender , System.EventArgs e )

{

DialogResult r = MessageBox.Show ( "是否刪除當(dāng)前記錄!" , "刪除當(dāng)前記錄!" , MessageBoxButtons.YesNo , MessageBoxIcon.Question ) ;

int ss = ( int ) r ;

  if ( ss == 6 ) // 按動"確定"按鈕

{

try{

file://連接到一個數(shù)據(jù)庫

string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb " ;

OleDbConnection myConn = new OleDbConnection ( strCon ) ;

myConn.Open ( ) ;

string strDele = "DELETE FROM person WHERE id= " + t_id.Text ;

OleDbCommand myCommand = new OleDbCommand ( strDele , myConn ) ;

file://從數(shù)據(jù)庫中刪除指定記錄

myCommand.ExecuteNonQuery ( ) ;

file://從DataSet中刪除指定記錄

myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . Delete ( ) ;

myDataSet.Tables [ "person" ] . AcceptChanges ( ) ;

myConn.Close ( ) ;

}

catch ( Exception ed )

{

MessageBox.Show ( "刪除記錄錯誤信息: " + ed.ToString ( ) , "錯誤!" ) ;

}

}

}

file://按鈕"尾記錄"對象事件程序

protected void GoLast ( object sender , System.EventArgs e )

{

myBind.Position = myBind.Count - 1 ;

}



file://按鈕"下一條"對象事件程序

protected void GoNext ( object sender , System.EventArgs e )

{

if ( myBind.Position == myBind.Count -1 )

MessageBox.Show ( "已經(jīng)到了最后一條記錄!", "信息提示!" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

else

myBind.Position += 1 ;

}

file://按鈕"上一條"對象事件程序

protected void GoPrevious ( object sender , System.EventArgs e )

{

if ( myBind.Position == 0 )

MessageBox.Show ( "已經(jīng)到了第一條記錄!" , "信息提示!" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

else

myBind.Position -= 1 ;

}

file://按鈕"首記錄"對象事件程序

protected void GoFirst ( object sender , System.EventArgs e )

{

myBind.Position = 0 ;

}

}





  對于以Sql Server 2000數(shù)據(jù)庫為模型的程序代碼,只要把Data01.cs中的數(shù)據(jù)鏈接,即:

string myConn1 = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;



  改換成:

string strCon = "Provider = SQLOLEDB.1 ; Persist Security Info = False ; User ID = sa ; Initial Catalog = data1 ; Data Source = server1 " ;



  注釋:此數(shù)據(jù)鏈接代表的意思是:打開Sql server數(shù)據(jù)庫,服務(wù)器名稱為server1,數(shù)據(jù)庫為data1

就可以得到Visual C#針對Sql Server 2000數(shù)據(jù)庫為模板編程的完成源程序代碼了。所以本文就不再提供了。



  七.總結(jié):



  數(shù)據(jù)庫編程始終是程序編程內(nèi)容中的一個重點(diǎn)和難點(diǎn)。而以上介紹的這些操作又是數(shù)據(jù)庫編程中最為基本,也是最為重要的內(nèi)容。那些復(fù)雜的編程無非是以上這些處理的若干個疊加。






溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        国产精品嫩草99a| 亚洲二区视频在线| 日韩女优av电影| 夜夜夜精品看看| 偷窥少妇高潮呻吟av久久免费| 国产精品自拍毛片| 欧美一级在线免费| 亚洲国产裸拍裸体视频在线观看乱了| 国产一二精品视频| 久久久亚洲欧洲日产国码αv| 午夜欧美2019年伦理| 日本精品一级二级| 亚洲男人的天堂av| 成人黄页在线观看| 国产亚洲婷婷免费| 亚洲精品国久久99热| 福利电影一区二区| 国产欧美日韩另类视频免费观看| 蜜臀va亚洲va欧美va天堂| 在线观看日韩毛片| 亚洲自拍偷拍九九九| 国产在线不卡一卡二卡三卡四卡| 欧美一区二区啪啪| 精品一区二区在线观看| 26uuuu精品一区二区| 五月婷婷色综合| 欧美乱妇一区二区三区不卡视频| 亚洲国产欧美日韩另类综合| eeuss鲁片一区二区三区| 国产精品天美传媒| 99re视频这里只有精品| 亚洲影视资源网| 欧美日韩免费观看一区二区三区| 奇米影视一区二区三区小说| 精品剧情在线观看| 激情综合色播五月| 国产亚洲精品免费| 色婷婷久久综合| 裸体一区二区三区| 国产日本一区二区| 欧美日韩成人高清| 亚洲宅男天堂在线观看无病毒| 亚洲高清视频在线| 91在线云播放| 亚洲制服欧美中文字幕中文字幕| 欧美撒尿777hd撒尿| 日韩精品1区2区3区| 日本一区二区三区高清不卡| 69精品人人人人| 欧美在线视频日韩| av不卡一区二区三区| 精品一区二区三区在线视频| 亚洲综合在线视频| 亚洲已满18点击进入久久| 亚洲四区在线观看| 亚洲人成伊人成综合网小说| 中文天堂在线一区| 国产婷婷色一区二区三区四区| 欧美一区二区视频在线观看2022 | 精品第一国产综合精品aⅴ| 99精品视频在线观看免费| 国产一区二区在线看| 久久99久久精品欧美| 麻豆91在线播放免费| 国产自产v一区二区三区c| 韩国精品主播一区二区在线观看| 加勒比av一区二区| 国产一区二区看久久| 成人激情视频网站| 色94色欧美sute亚洲13| 欧美性猛片aaaaaaa做受| 精品视频免费在线| 91精品国产综合久久婷婷香蕉| 欧美一区二区三区视频免费播放| 日韩欧美在线一区二区三区| 2019国产精品| 国产精品福利一区| 一区二区在线观看免费| 天天综合天天综合色| 久久精品国产成人一区二区三区 | 欧美一区二区三区思思人| 欧美一级艳片视频免费观看| 久久久www成人免费毛片麻豆| 国产午夜精品一区二区三区视频 | 久久蜜桃av一区二区天堂| 久久精品人人爽人人爽| 欧美国产日本视频| 亚洲精品videosex极品| 丝瓜av网站精品一区二区| 久久国产夜色精品鲁鲁99| 国产精品系列在线观看| 色综合久久综合网欧美综合网| 91精品在线观看入口| 久久综合999| 一区二区三区在线免费| 精品一区二区三区免费观看 | 666欧美在线视频| 久久久久国产精品麻豆| 一区二区三区在线视频免费观看| 欧美a级一区二区| 色综合久久88色综合天天免费| 日韩欧美中文一区| 亚洲精品精品亚洲| 国产98色在线|日韩| 51精品视频一区二区三区| 中文字幕国产精品一区二区| 天堂影院一区二区| 色综合一区二区三区| 久久久久国产成人精品亚洲午夜| 亚洲一区二区欧美| av午夜一区麻豆| 久久亚洲欧美国产精品乐播 | 波波电影院一区二区三区| 91精品国产综合久久福利| 亚洲欧美国产毛片在线| 韩国毛片一区二区三区| 5858s免费视频成人| 一个色综合网站| 成人免费毛片片v| 欧美变态口味重另类| 亚洲国产精品欧美一二99| 99久久er热在这里只有精品66| 国产亚洲综合在线| 日本 国产 欧美色综合| 欧美性猛交xxxx乱大交退制版 | 欧美色窝79yyyycom| 中文字幕日本不卡| 粉嫩高潮美女一区二区三区 | 欧美亚洲高清一区二区三区不卡| 国产三级一区二区| 狠狠狠色丁香婷婷综合激情| 欧美精品久久久久久久多人混战 | 亚洲二区视频在线| 91国在线观看| 日韩理论片网站| 99久久免费精品高清特色大片| 久久综合色综合88| 久久国产精品第一页| 日韩欧美中文字幕公布| 麻豆精品视频在线观看| 日韩欧美国产1| 韩国精品主播一区二区在线观看 | 99久久久精品免费观看国产蜜| 久久久夜色精品亚洲| 国产美女精品人人做人人爽| 久久久久久久精| 国产成人高清在线| 一色屋精品亚洲香蕉网站| 成人美女视频在线观看18| 一色桃子久久精品亚洲| 色av一区二区| 人禽交欧美网站| 中文字幕乱码日本亚洲一区二区| 成av人片一区二区| 亚洲伦理在线精品| 欧美一区二视频| 国产激情一区二区三区| 亚洲色图视频网| 日韩美女视频一区二区在线观看| 国产精品原创巨作av| 亚洲欧美国产毛片在线| 91精品综合久久久久久| 国产大片一区二区| 亚洲激情图片一区| 日韩视频免费直播| 91丝袜高跟美女视频| 首页国产丝袜综合| 欧美国产日本韩| 91精品国产色综合久久| 成人激情免费视频| 天天av天天翘天天综合网 | 久久精品72免费观看| 国产欧美精品区一区二区三区| 色成年激情久久综合| 久久激情五月婷婷| 亚洲精品福利视频网站| 日韩欧美的一区二区| 91亚洲精品一区二区乱码| 美女视频网站黄色亚洲| 国产欧美视频一区二区| 欧美日韩国产综合草草| 成人在线一区二区三区| 男女视频一区二区| 亚洲一区在线看| 国产欧美日韩在线观看| 欧美岛国在线观看| 欧美理论片在线| 91视频观看免费| 国产高清视频一区| 国内成人免费视频| 亚洲精品国产高清久久伦理二区 | 日韩欧美国产一区二区三区 | 亚洲欧洲精品一区二区三区| 欧美一级久久久久久久大片| 一本色道综合亚洲| 成人h动漫精品| 国产91色综合久久免费分享| 日本在线播放一区二区三区| 午夜精品一区二区三区免费视频| 亚洲另类在线制服丝袜|