C#连接数据库和更新数据库Word文件下载.docx
《C#连接数据库和更新数据库Word文件下载.docx》由会员分享,可在线阅读,更多相关《C#连接数据库和更新数据库Word文件下载.docx(11页珍藏版)》请在冰点文库上搜索。
![C#连接数据库和更新数据库Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/43fde757-6f54-48ff-9660-2d0334d6cbca/43fde757-6f54-48ff-9660-2d0334d6cbca1.gif)
strConnection+=MapPath("
Northwind.mdb"
);
3.要注意连接字符串中的参数之间要用分号来分隔。
“OleDbConnectionobjConnection=newOleDbConnection(strConnection);
”这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道。
“objConnection.Open();
”这用来打开连接。
至此,与Access数据库的连接完成。
2.C#连接SQLServer
usingSystem.Data.SqlClient;
..
userid=sa;
password=;
initialcatalog=Northwind;
Server=YourSQLServer;
ConnectTimeout=30"
SqlConnectionobjConnection=newSqlConnection(strConnection);
连接SQLServer数据库的机制与连接Access的机制没有什么太大的区别,只是改变了Connection对象和连接字符串中的不同参数。
首先,连接SQLServer使用的命名空间不是“System.Data.OleDb”,而是“System.Data.SqlClient”。
其次就是他的连接字符串了,我们一个一个参数来介绍(注意:
参数间用分号分隔):
“userid=sa”:
连接数据库的验证用户名为sa。
他还有一个别名“uid”,所以这句我们还可以写成“uid=sa”。
“password=”:
连接数据库的验证密码为空。
他的别名为“pwd”,所以我们可以写为“pwd=”。
这里注意,你的SQLServer必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录。
如果你的SQLServer设置为Windows登录,那么在这里就不需要使用“userid”和“password”这样的方式来登录,而需要使用“Trusted_Connection=SSPI”来进行登录。
“initialcatalog=Northwind”:
使用的数据源为“Northwind”这个数据库。
他的别名为“Database”,本句可以写成“Database=Northwind”。
“Server=YourSQLServer”:
使用名为“YourSQLServer”的服务器。
他的别名为“DataSource”,“Address”,“Addr”。
如果使用的是本地数据库且定义了实例名,则可以写为“Server=(local)\实例名”;
如果是远程服务器,则将“(local)”替换为远程服务器的名称或IP地址。
“ConnectTimeout=30”:
连接超时时间为30秒。
在这里,建立连接对象用的构造函数为:
SqlConnection。
3.C#连接Oracle
usingSystem.Data.OracleClient;
usingSystem.Data;
//在窗体上添加一个按钮,叫Button1,双击Button1,输入以下代码privatevoidButton1_Click(objectsender,System.EventArgse){stringConnectionString="
DataSource=sky;
user=system;
password=manager;
//写连接串OracleConnectionconn=newOracleConnection(ConnectionString);
//创建一个新连接try{conn.Open();
OracleCommandcmd=conn.CreateCommand();
cmd.CommandText="
select*fromMyTable"
//在这儿写sql语句OracleDataReaderodr=cmd.ExecuteReader();
//创建一个OracleDateReader对象while(odr.Read())//读取数据,如果odr.Read()返回为false的话,就说明到记录集的尾部了{Response.Write(odr.GetOracleString
(1).ToString());
//输出字段1,这个数是字段索引,具体怎么使用字段名还有待研究}odr.Close();
}catch(Exceptionee){Response.Write(ee.Message);
//如果有错误,输出错误信息}finally{conn.Close();
//关闭连接}}
4.C#连接MySQL
usingMySQLDriverCS;
//建立数据库连接MySQLConnectionDBConn;
DBConn=newMySQLConnection(newMySQLConnectionString("
localhost"
"
mysql"
root"
3306).AsString);
DBConn.Open();
//执行查询语句MySQLCommandDBComm;
DBComm=newMySQLCommand("
selectHost,Userfromuser"
DBConn);
//读取数据MySQLDataReaderDBReader=DBComm.ExecuteReaderEx();
//显示数据try{while(DBReader.Read()){Console.WriteLine("
Host={0}andUser={1}"
DBReader.GetString(0),DBReader.GetString
(1));
}}finally{DBReader.Close();
DBConn.Close();
}//关闭数据库连接DBConn.Close();
5.C#连接IBMDB2
OleDbConnection1.Open();
//打开数据库连接OleDbDataAdapter1.Fill(dataSet1,"
Address"
//将得来的数据填入dataSetDataGrid1.DataBind();
//绑定数据OleDbConnection1.Close();
//关闭连接//增加数据库数据在WebForm上新增对应字段数量个数的TextBox,及一个button,为该按键增加Click响应事件代码如下:
this.OleDbInsertCommand1.CommandText="
INSERTsintosADDRESS(NAME,EMAIL,AGE,ADDRESS)VALUES('
+TextBox1.Text+"
'
'
+TextBox2.Text+"
+TextBox3.Text+"
+TextBox4.Text+"
)"
OleDbInsertCommand1.Connection.Open();
//打开连接OleDbInsertCommand1.ExecuteNonQuery();
//执行该SQL语句OleDbInsertCommand1.Connection.Close();
//关闭连接
6.C#连接SyBase
Provider=Sybase.ASEOLEDBProvider.2;
InitialCatalog=数据库名;
UserID=用户名;
DataSource=数据源;
ExtendedProperties="
ServerName=ip地址;
NetworkProtocol=Winsock;
ServerPortAddress=5000;
对数据库的操作总体可以分为两类:
查询(select)和更新(insert,delete,update)。
为什么这样来分呢?
仔细看看两类的区别,select只是从数据库中将数据拿出来使用,而其余三者都会对数据库的物理数据进行修改。
capucivar在上篇文章中已经对数据库的查询操作进行了详细的阐述。
这篇文章将接着阐述更新数据。
更新数据库信息首先是连接数据库,这个capucivar在《C#连接数据库之查询数据库》中已有介绍了。
对数据库的更新需要一个对象:
OleDbCommand。
该对象表示要对数据源执行的SQL语句或存储过程。
这个对象有三个属性:
1、CommandText表示要设置命令的文本;
2、Connection表示要设置命令的连接;
3、CommandType表示设置命令的类型,默认的是Sql语句(但如果不是执行sql语句,就一定要指定命令的类型)。
OleDbCommand对象设置好以后,就该执行sql语句了。
方法ExecuteNonQuery()就是执行sql语句。
如果记不住这个方法,教你一个简单的记法:
将“ExecuteNonQuery”单词分为三部分,就是“执行不查询”,那就是更新数据了。
下面就做一个例子熟悉对数据库的更新:
先使用VisualStudio2005做出如下界面:
界面做好以后就相当于做了一个空壳子。
接下来就是往里边添加事件了。
我们还要借用上篇文章中的ConnDb类,在该类里添加一个方法:
update()对数据库进行更新,该方法里有一个参数stringsql。
publicclassConnDb
{OleDbConnectionconn=null;
//连接数据库的对象
//下面是构造函数连接数据库
publicConnDb()
{if(conn==null)//判断连接是否为空
{
conn=newOleDbConnection();
conn.ConnectionString="
provider=sqloledb.1;
datasource=.;
initialcatalog=capucivar;
pwd="
//连接数据库的字符串}
if(conn.State==ConnectionState.Closed)
conn.Open();
//打开数据库连接
}}
//下面这个方法是从数据库中查找数据的方法
publicDataSetquery(stringsql)
{DataSetds=newDataSet();
//DataSet是表的集合
OleDbDataAdapterda=newOleDbDataAdapter(sql,conn);
//从数据库中查询
da.Fill(ds);
//将数据填充到DataSet
connClose();
returnds;
//返回结果
}
//下面的方法是对数据库进行更新
publicintupdate(stringsql)
{OleDbCommandoc=newOleDbCommand();
//表示要对数据源执行的SQL语句或存储过程
oc.CommandText=sql;
//设置命令的文本
oc.CommandType=CommandType.Text;
//设置命令的类型
oc.Connection=conn;
//设置命令的连接
intx=oc.ExecuteNonQuery();
//执行SQL语句
returnx;
//返回一个影响行数
//下面的connClose()方法是关闭数据库连接
publicvoidconnClose()
{if(conn.State==ConnectionState.Open)
{//判断数据库的连接状态,如果状态是打开的话就将它关闭
conn.Close();
}
对数据库的操作类写好了。
然后就来实现增删改的功能:
理一下思路,先添加一个用户,如何编写代码:
1、得到客户所填的数据(用户名和密码);
2、编写insert语句,将用户信息通过ConnDb()类添加到数据库中;
3、返回一个影响行数以便通知客户执行是否成功。
代码如下:
privatevoidadd_but_Click(objectsender,EventArgse)
{//按钮单击事件
//得到用户所填的用户名和密码
stringuname=this.uname_text.Text;
stringupass=this.upass_text.Text;
stringsql=string.Format("
insertintousersvalues('
{0}'
{1}'
uname,upass);
//拼写sql语句将该用户信息插入到数据库中
intx=newDb.ConnDb().update(sql);
//通过ConnDb()对象的update()方法执行sql语句并返回一个影响行数
if(x>
0)
{//如果影响行数大于0则说明插入成功,否则的话插入失败
MessageBox.Show("
添加成功!
}else{
添加失败!
添加一个用户之后,在右边的listBox中显示出来:
publicvoidrefurbish()
{stringsql="
select*fromusers"
//sql语句查询数据
DataSetds=newDb.ConnDb().query(sql);
//查询返回一个DataSet
this.listBox1.DisplayMember="
username"
//listBox中要显示的列
this.listBox1.DataSource=ds.Tables[0];
//listBox的数据源
}
执行结果如下:
而当客户选中右边的listBox中的一个选项时,可以进行相应的删除或修改。
删除的代码如下:
privatevoiddel_but_Click(objectsender,EventArgse)
{stringuname=this.listBox1.Text;
//得到listBox中所选的值
deletefromuserswhereusername='
uname);
//拼写sql语句删除用户
//调用update()方法返回影响行数
{//根据返回的影响行数判断删除是否成功
删除成功!
}else{
删除失败!
删除之后的结果如下:
在点击“更新”按钮之后,应该弹出一个窗口显示客户所选用户的信息供客户更新。
更新的代码如下:
privatevoidupa_but_Click(objectsender,EventArgse)
{
stringuname=this.listBox1.Text;
//得到listBox中所选的用户信息
newupd(uname).ShowDialog();
//弹出要更新窗口upd.cs}
upd.cs的代码如下:
publicpartialclassupd:
Form
publicupd()//无参构造函数
InitializeComponent();
publicupd(stringuname)//有参构造函数
{InitializeComponent();
this.uname_text.Text=uname;
//将用户名放到文本框
select*fromuserswhereusername='
uname);
//拼写sql语句通过用户名查找用户的信息
//下面得到结果集中的信息分别放至相应文本框中
this.uid_text.Text=ds.Tables[0].Rows[0][0].ToString();
this.upass_text.Text=ds.Tables[0].Rows[0][2].ToString();
privatevoidbutton1_Click(objectsender,EventArgse)//点击“确认修改”按钮所响应的事件
{intuid=Convert.ToInt32(this.uid_text.Text);
//得到uid
stringuname=this.uname_text.Text;
//得到用户名
//得到用户密码
updateuserssetusername='
userpass='
whereuid={2}"
uname,upass,uid);
//拼写一个修改sql语句
//返回所受影响行数
{//根据影响行数判断修改是否成功
修改成功!
this.Visible=false;
//将该页面隐藏
}else
{
修改失败!
return;
privatevoidbutton2_Click(objectsender,EventArgse){//点击“取消”按钮所响应的事件
}}
修改的结果如下:
在每次对数据库进行修改之后,界面右边的listBox中的数据就会更新一次,所以每次对数据库操作之后都应该调用refurbish()方法。
一个简单的使用C#对数据库进行增删改查的代码就写完了。
代码写的很简单,只是完成了最简单的增删改查功能,可以将上述的代码更加完善。