成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#連接數據庫和更新數據庫

開發 后端 數據庫運維
對數據庫的操作總體可以分為兩類:查詢(select)和更新(insert,delete,update)。這篇文章將接著闡述更新數據。

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

更新數據庫信息首先是連接數據庫,這個capucivar在《C#連接數據庫之查詢數據庫》中已有介紹了。對數據庫的更新需要一個對象:OleDbCommand。該對象表示要對數據源執行的SQL語句或存儲過程。

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

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

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

 界面做好以后就相當于做了一個空殼子。接下來就是往里邊添加事件了。我們還要借用上篇文章中的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("添加失??!");

            } }

添加一個用戶之后,在右邊的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的數據源

 }

執行結果如下:

 

而當客戶選中右邊的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("刪除失敗!");   }  }

 

刪除之后的結果如下:

 

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

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;//將該頁面隱藏

        }  }}

 

修改的結果如下:

 

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

【編輯推薦】

  1. 詳解SQL Server 2008遷移查詢計劃
  2. SQL Server 2008 的恢復和備份模式
  3. 初探SQL Server 2008的性能數據收集器
責任編輯:book05 來源: 新浪博客
相關推薦

2009-08-25 14:05:06

C#連接數據庫代碼

2009-09-04 17:49:34

C#連接數據庫

2009-08-18 11:23:11

2010-10-26 15:21:11

連接Oracle數據庫

2009-08-25 11:35:27

C#連接數據庫

2009-09-04 17:23:21

C#數據庫連接對象

2009-07-06 17:23:34

JDBC連接數據庫

2011-03-16 17:14:17

JavaBean數據庫

2009-06-15 15:26:00

NetBeans連接數使用JSTL

2009-08-25 14:18:13

C#如何連接數據庫

2009-08-25 15:50:13

C#連接遠程數據庫

2009-08-12 14:23:01

C#連接MySql數據

2009-08-03 14:17:18

C#連接AccessC#連接SQL Ser

2009-08-07 14:02:12

C#數據庫連接字符串

2009-08-25 14:59:36

ASP.NET和C#連

2009-07-20 15:56:08

JDBC連接數據庫步驟

2010-08-04 10:32:56

Flex連接數據庫

2009-07-14 17:18:23

JDBC怎么連接數據庫

2011-07-05 09:54:04

2010-10-12 12:00:42

MySQL連接
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成年人网站国产 | 精品视频久久久久久 | 欧美aⅴ| 亚洲成人一区 | 欧美极品一区二区 | 日韩中文一区二区三区 | 日本久久www成人免 成人久久久久 | 99福利视频 | 玖玖国产精品视频 | 少妇诱惑av| 成人免费视频网站在线看 | 黄a网站| 91伊人网 | 亚洲精品2 | 男女羞羞免费网站 | 国产精品成人一区二区三区 | 日本中文字幕在线视频 | 91九色porny首页最多播放 | www.嫩草| 日本精品一区二区三区在线观看视频 | 国产成人免费视频网站高清观看视频 | 欧美亚洲国产日韩 | 久久久久1 | 精品欧美一区二区精品久久 | 免费看黄色片 | 在线看免费 | 亚洲欧美日韩成人在线 | 麻豆精品国产91久久久久久 | 精品日韩在线 | 欧美激情精品久久久久久 | 在线国产视频观看 | www日本在线| 日韩免费视频一区二区 | 男人av在线播放 | 91视频一区二区三区 | 99色综合| 中文一区 | 国产精品久久久久婷婷二区次 | 国产精品99一区二区 | 亚洲免费网址 | 国产日屁 |