C#连接数据库和更新数据库.docx

上传人:b****1 文档编号:22993826 上传时间:2023-04-29 格式:DOCX 页数:11 大小:71.86KB
下载 相关 举报
C#连接数据库和更新数据库.docx_第1页
第1页 / 共11页
C#连接数据库和更新数据库.docx_第2页
第2页 / 共11页
C#连接数据库和更新数据库.docx_第3页
第3页 / 共11页
C#连接数据库和更新数据库.docx_第4页
第4页 / 共11页
C#连接数据库和更新数据库.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C#连接数据库和更新数据库.docx

《C#连接数据库和更新数据库.docx》由会员分享,可在线阅读,更多相关《C#连接数据库和更新数据库.docx(11页珍藏版)》请在冰豆网上搜索。

C#连接数据库和更新数据库.docx

C#连接数据库和更新数据库

http:

//dotnet.aspx.cc/

1.C#连接Access

   程序代码:

   usingSystem.Data;

   usingSystem.Data.OleDb;

   stringstrConnection="Provider=Microsoft.Jet.OleDb.4.0;";

   strConnection+=@"DataSource=C:

\BegASPNET\Northwind.mdb";

   OleDbConnectionobjConnection=newOleDbConnection(strConnection);

   objConnection.Open();

   objConnection.Close();

   解释:

   连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!

   strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源。

   “Provider=Microsoft.Jet.OleDb.4.0;”是指数据提供者,这里使用的是MicrosoftJet引擎,也就是Access中的数据引擎,就是靠这个和Access的数据库连接的。

   “DataSource=C:

\BegASPNET\Northwind.mdb”是指明数据源的位置,他的标准形式是“DataSource=MyDrive:

MyPath\MyFile.MDB”。

   PS:

   1.“+=”后面的“@”符号是防止将后面字符串中的“\”解析为转义字符。

   2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:

   strConnection+="DataSource=";strConnection+=MapPath("Northwind.mdb");

   3.要注意连接字符串中的参数之间要用分号来分隔。

   “OleDbConnectionobjConnection=newOleDbConnection(strConnection);”这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道。

   “objConnection.Open();”这用来打开连接。

至此,与Access数据库的连接完成。

   2.C#连接SQLServer

   程序代码:

   usingSystem.Data;

   usingSystem.Data.SqlClient;..

   stringstrConnection="userid=sa;password=;";

   strConnection+="initialcatalog=Northwind;Server=YourSQLServer;";

   strConnection+="ConnectTimeout=30";

   SqlConnectionobjConnection=newSqlConnection(strConnection);..

   objConnection.Open();

   objConnection.Close();

   解释:

   连接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;

C#连接数据库和更新数据库

对数据库的操作总体可以分为两类:

查询(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;userid=sa;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语句

           connClose();//关闭连接

           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{

               MessageBox.Show("添加失败!

");

           }}

添加一个用户之后,在右边的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中所选的值

           stringsql=string.Format("deletefromuserswhereusername='{0}'",uname);//拼写sql语句删除用户

           intx=newDb.ConnDb().update(sql);//调用update()方法返回影响行数

           if(x>0)

           {//根据返回的影响行数判断删除是否成功

               MessageBox.Show("删除成功!

");

           }else{

         MessageBox.Show("删除失败!

");  } }

 

删除之后的结果如下:

在点击“更新”按钮之后,应该弹出一个窗口显示客户所选用户的信息供客户更新。

更新的代码如下:

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;//将用户名放到文本框

           stringsql=string.Format("select*fromuserswhereusername='{0}'",uname);//拼写sql语句通过用户名查找用户的信息

           DataSetds=newDb.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();

       }

       privatevoidbutton1_Click(objectsender,EventArgse)//点击“确认修改”按钮所响应的事件

   {intuid=Convert.ToInt32(this.uid_text.Text);//得到uid

           stringuname=this.uname_text.Text;//得到用户名

           stringupass=this.upass_text.Text;//得到用户密码

           stringsql=string.Format("updateuserssetusername='{0}',userpass='{1}'whereuid={2}",uname,upass,uid);//拼写一个修改sql语句

          intx=newDb.ConnDb().update(sql);//返回所受影响行数

           if(x>0)

           {//根据影响行数判断修改是否成功

               MessageBox.Show("修改成功!

");

               this.Visible=false;//将该页面隐藏

           }else {

               MessageBox.Show("修改失败!

");

               return;}}

       privatevoidbutton2_Click(objectsender,EventArgse){//点击“取消”按钮所响应的事件

           this.Visible=false;//将该页面隐藏

       } }}

 

修改的结果如下:

在每次对数据库进行修改之后,界面右边的listBox中的数据就会更新一次,所以每次对数据库操作之后都应该调用refurbish()方法。

一个简单的使用C#对数据库进行增删改查的代码就写完了。

代码写的很简单,只是完成了最简单的增删改查功能,可以将上述的代码更加完善。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1