《2022年C#连接数据库和更新数据库 .pdf》由会员分享,可在线阅读,更多相关《2022年C#连接数据库和更新数据库 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C#连接数据库和更新数据库对数据库的操作总体可以分为两类:查询(select) 和更新 (insert,delete,update)。为什么这样来分呢?仔细看看两类的区别,select 只是从数据库中将数据拿出来使用,而其余三者都会对数据库的物理数据进行修改。capucivar在上篇文章中已经对数据库的查询操作进行了详细的阐述。这篇文章将接着阐述更新数据。更新数据库信息首先是连接数据库,这个capucivar 在 C#连接数据库之查询数据库中已有介绍了。对数据库的更新需要一个对象:OleDbCommand。该对象表示要对数据源执行的 SQL 语句或存储过程。这个对象有三个属性:1、Comman
2、dText表示要设置命令的文本;2、Connection表示要设置命令的连接;3、CommandType表示设置命令的类型,默认的是Sql 语句(但如果不是执行sql 语句,就一定要指定命令的类型)。OleDbCommand对象设置好以后,就该执行 sql 语句了。方法ExecuteNonQuery()就是执行sql 语句。如果记不住这个方法,教你一个简单的记法:将“ExecuteNonQuery”单词分为三部分,就是“ 执行不查询 ” ,那就是更新数据了。下面就做一个例子熟悉对数据库的更新:先使用 Visual Studio2005做出如下界面:名师资料总结 - - -精品资料欢迎下载 -
3、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - public class ConnDb OleDbConnection conn = null;/连接数据库的对象/下面是构造函数连接数据库public ConnDb() if (conn=null)/判断连接是否为空conn = new OleDbConnection(); conn.ConnectionString=provider=sqloledb.1;data source=.;initial catalog=capu
4、civar;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();/关闭连接retu
5、rn 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;/返回一个影响行数 /下面的 con
6、nClose()方法是关闭数据库连接public void connClose() if (conn.State = ConnectionState.Open) / 判断数据库的连接状态,如果状态是打开的话就将它关闭conn.Close(); *对数据库的操作类写好了。然后就来实现增删改的功能:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 理一下思路,先添加一个用户,如何编写代码:1、得到客户所填的数据(用户名和密码); 2、
7、编写 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 语句将该用户信息
8、插入到数据库中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语句查询数据名师资料总结 - - -精品资料欢迎下载 - - -
9、- - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - DataSet ds = new Db.ConnDb().query(sql);/查询返回一个DataSet this.listBox1.DisplayMember = username;/listBox中要显示的列this.listBox1.DataSource=ds.Tables0;/ listBox 的数据源 执行结果如下:而当客户选中右边的listBox 中的一个选项时,可以进行相应的删除或修改。删除的代码如下:private
10、 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(删除成功! ); 名师资料总结 -
11、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - else MessageBox.Show(删除失败! ); 删除之后的结果如下:在点击 “ 更新 ” 按钮之后,应该弹出一个窗口显示客户所选用户的信息供客户更新。更新的代码如下:private void upa_but_Click(object sender, EventArgs e) string uname = this.listBox1.Text;/得到 listBox 中所选的用户信息new
12、 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;/ 将用户名放到文本框名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
13、- 第 5 页,共 7 页 - - - - - - - - - string sql = string.Format(select * from users where username=0, uname);/ 拼写 sql 语句通过用户名查找用户的信息DataSet ds = new Db.ConnDb().query(sql); /下面得到结果集中的信息分别放至相应文本框中this.uid_text.Text = ds.Tables0.Rows00.ToString();this.upass_text.Text = ds.Tables0.Rows02.ToString(); private
14、 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);/
15、拼写一个修改sql 语句int x = new Db.ConnDb().update(sql);/返回所受影响行数if (x 0) /根据影响行数判断修改是否成功MessageBox.Show(修改成功! ); this.Visible = false;/ 将该页面隐藏 else MessageBox.Show(修改失败! ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - return; private void butto
16、n2_Click(object sender, EventArgs e)/ 点击“取消”按钮所响应的事件this.Visible = false;/ 将该页面隐藏 修改的结果如下:在每次对数据库进行修改之后,界面右边的listBox 中的数据就会更新一次,所以每次对数据库操作之后都应该调用refurbish() 方法。一个简单的使用C# 对数据库进行增删改查的代码就写完了。 代码写的很简单,只是完成了最简单的增删改查功能,可以将上述的代码更加完善。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -