一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#連接數據庫和更新數據庫的方法

C#連接數據庫和更新數據庫的方法

2021-10-18 13:38C#教程網 C#

這篇文章主要介紹了C#連接數據庫和更新數據庫的方法,需要的朋友可以參考下

對數據庫的操作總體可以分為兩類:查詢(select)和更新(insert,delete,update)。為什么這樣來分呢?仔細看看兩類的區別,select只是從數據庫中將數據拿出來使用,而其余三者都會對數據庫的物理數據進行修改。這篇文章將接著闡述更新數據。

更新數據庫信息首先是連接數據庫,對數據庫的更新需要一個對象:OleDbCommand。該對象表示要對數據源執行的SQL語句或存儲過程。

這個對象有三個屬性:1、CommandText表示要設置命令的文本;2、Connection表示要設置命令的連接;3、CommandType表示設置命令的類型,默認的是Sql語句(但如果不是執行sql語句,就一定要指定命令的類型)。OleDbCommand對象設置好以后,就該執行sql語句了。方法ExecuteNonQuery()就是執行sql語句。如果記不住這個方法,教你一個簡單的記法:將“ExecuteNonQuery”單詞分為三部分,就是“執行不查詢”,那就是更新數據了。

下面就做一個例子熟悉對數據庫的更新:

先使用Visual Studio2005做出如下界面:

 C#連接數據庫和更新數據庫的方法

界面做好以后就相當于做了一個空殼子。接下來就是往里邊添加事件了。我們還要借用上篇文章中的ConnDb類,在該類里添加一個方法:update()對數據庫進行更新,該方法里有一個參數string sql。

 

 public class ConnDb { OleDbConnection conn = null;//連接數據庫的對象 //下面是構造函數連接數據庫 public ConnDb() { if (conn==null)//判斷連接是否為空 { conn = new OleDbConnection(); conn.ConnectionString="provider=sqloledb.1;data source=.;initial catalog=capucivar;user id=sa;pwd=";//連接數據庫的字符串 } if (conn.State == ConnectionState.Closed) { conn.Open();//打開數據庫連接 } } //下面這個方法是從數據庫中查找數據的方法 public DataSet query(string sql) { DataSet ds = new DataSet();//DataSet是表的集合 OleDbDataAdapter da = new OleDbDataAdapter(sql,conn);//從數據庫中查詢 da.Fill(ds);//將數據填充到DataSet connClose();//關閉連接 return ds;//返回結果 } //下面的方法是對數據庫進行更新 public int update(string sql) {OleDbCommand oc = new OleDbCommand();//表示要對數據源執行的SQL語句或存儲過程 oc.CommandText = sql;//設置命令的文本 oc.CommandType = CommandType.Text;//設置命令的類型 oc.Connection = conn;//設置命令的連接 int x=oc.ExecuteNonQuery();//執行SQL語句 connClose();//關閉連接 return x;  //返回一個影響行數 } //下面的connClose()方法是關閉數據庫連接 public void connClose() { if (conn.State == ConnectionState.Open) {//判斷數據庫的連接狀態,如果狀態是打開的話就將它關閉 conn.Close();  }  } } 

對數據庫的操作類寫好了。然后就來實現增刪改的功能:

理一下思路,先添加一個用戶,如何編寫代碼:1、得到客戶所填的數據(用戶名和密碼);2、編寫insert語句,將用戶信息通過ConnDb()類添加到數據庫中;3、返回一個影響行數以便通知客戶執行是否成功。代碼如下:

 

 private void add_but_Click(object sender, EventArgs e) {//按鈕單擊事件 //得到用戶所填的用戶名和密碼 string uname = this.uname_text.Text;      string upass = this.upass_text.Text; string sql = string.Format("insert into users values('{0}','{1}')",uname,upass);//拼寫sql語句將該用戶信息插入到數據庫中 int x = new Db.ConnDb().update(sql);//通過ConnDb()對象的update()方法執行sql語句并返回一個影響行數 if (x > 0) {//如果影響行數大于0則說明插入成功,否則的話插入失敗 MessageBox.Show("添加成功!"); } else { MessageBox.Show("添加失?。?quot;); } } 

添加一個用戶之后,在右邊的listBox中顯示出來:

 

 public void refurbish() { string sql = "select * from users";//sql語句查詢數據 DataSet ds = new Db.ConnDb().query(sql);//查詢返回一個DataSet this.listBox1.DisplayMember = "username";//listBox中要顯示的列 this.listBox1.DataSource=ds.Tables[0];// listBox的數據源 } 

執行結果如下:

 C#連接數據庫和更新數據庫的方法

而當客戶選中右邊的listBox中的一個選項時,可以進行相應的刪除或修改。刪除的代碼如下:

 

 private void del_but_Click(object sender, EventArgs e) {string uname = this.listBox1.Text;//得到listBox中所選的值 string sql = string.Format("delete from users where username='{0}'",uname);//拼寫sql語句刪除用戶 int x = new Db.ConnDb().update(sql);//調用update()方法返回影響行數 if (x > 0) {//根據返回的影響行數判斷刪除是否成功 MessageBox.Show("刪除成功!"); } else{ MessageBox.Show("刪除失敗!");  } } 

刪除之后的結果如下:

 C#連接數據庫和更新數據庫的方法

在點擊“更新”按鈕之后,應該彈出一個窗口顯示客戶所選用戶的信息供客戶更新。更新的代碼如下:

 

 private void upa_but_Click(object sender, EventArgs e) { string uname = this.listBox1.Text;//得到listBox中所選的用戶信息 new upd(uname).ShowDialog();//彈出要更新窗口upd.cs } upd.cs的代碼如下: public partial class upd : Form { public upd()//無參構造函數 { InitializeComponent(); } public upd(string uname)//有參構造函數 { InitializeComponent(); this.uname_text.Text = uname;//將用戶名放到文本框 string sql = string.Format("select * from users where username='{0}'", uname);//拼寫sql語句通過用戶名查找用戶的信息 DataSet ds = new Db.ConnDb().query(sql); //下面得到結果集中的信息分別放至相應文本框中 this.uid_text.Text = ds.Tables[0].Rows[0][0].ToString();      this.upass_text.Text = ds.Tables[0].Rows[0][2].ToString(); } private void button1_Click(object sender, EventArgs e)//點擊“確認修改”按鈕所響應的事件 {int uid = Convert.ToInt32(this.uid_text.Text);//得到uid string uname = this.uname_text.Text;//得到用戶名 string upass = this.upass_text.Text;//得到用戶密碼 string sql = string.Format("update users set username='{0}',userpass='{1}' where uid={2}",uname,upass,uid);//拼寫一個修改sql語句 int x = new Db.ConnDb().update(sql);//返回所受影響行數 if (x > 0) {//根據影響行數判斷修改是否成功 MessageBox.Show("修改成功!"); this.Visible = false;//將該頁面隱藏 } else { MessageBox.Show("修改失敗!"); return; } } private void button2_Click(object sender, EventArgs e){//點擊“取消”按鈕所響應的事件 this.Visible = false;//將該頁面隱藏 } }} 

修改的結果如下:

 C#連接數據庫和更新數據庫的方法

在每次對數據庫進行修改之后,界面右邊的listBox中的數據就會更新一次,所以每次對數據庫操作之后都應該調用refurbish()方法。一個簡單的使用C#對數據庫進行增刪改查的代碼就寫完了。

代碼寫的很簡單,只是完成了最簡單的增刪改查功能,大家可以動手操作將上述的代碼更加完善!

延伸 · 閱讀

精彩推薦
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
主站蜘蛛池模板: 欧美亚洲一区二区三区在线 | 久久免费特黄毛片 | 91日本在线 | 久久这里只精品热在线18 | 国产精品视频视频久久 | 男同精品视频免费观看网站 | dasd817黑人在线播放 | 日本www午夜色在线视频 | 国产剧情麻豆刘玥视频 | a在线观看欧美在线观看 | 久久高清一级毛片 | 精品一久久香蕉国产线看播放 | 天堂a免费视频在线观看 | 全肉np巨肉一女np高h双龙 | 97爱sese | 波多野结衣被绝伦强在线观看 | 国产一区二区免费不卡在线播放 | 亚洲欧美日韩国产一区图片 | 桃乃木香奈作品在线 | 久久精品嫩草影院免费看 | 欧美日韩国产亚洲一区二区三区 | 涩涩国产精品福利在线观看 | 亚洲AV无码专区国产精品麻豆 | 青青91| 好男人好资源在线观看免费 | 校草让我脱了内裤给全班看 | 麻生希无码 | 精品午夜寂寞影院在线观看 | 欧美va免费大片 | 免费一级欧美大片在线观看 | 天天操天天干天天舔 | 精品国产国偷自产在线观看 | 亚洲 欧美 中文 日韩 另类 | 国内精品哆啪啪 | 99久久精品在免费线18 | 国产拍拍视频一二三四区 | 美女被视频网站看免费入口 | 亚洲第6页 | 俄罗斯烧性春三级k8播放 | 国产绿帽| 欧美影院一区二区三区 |