当前位置: 代码迷 >> 综合 >> C#--ADO对于数据库的操作(Sqlcommmand、SqlConnection、Sqldatareader、SqlDataAdapter、Dataset
  详细解决方案

C#--ADO对于数据库的操作(Sqlcommmand、SqlConnection、Sqldatareader、SqlDataAdapter、Dataset

热度:67   发布时间:2023-12-16 08:58:09.0

命名空间 System.Data.SqlClient的主要类:
SqlCommand
SqlConnection
SqlDataAdapter
SqlDataReader

一、Sqlcommmand的用法

关于Sqlcommmand的方法

属性

说明

ActiveConnection 设定要透过哪个连接对象下命令
CommandBehavior 设定Command对象的动作模式
CommandType(Text\TableDirect\StoredProcedure) 命令类型(SQL语句,完整表达句,存储过程)
CommandText 要下达至数据源的命令
CommandTimeout 出错时等待时间
Parameters 参数集合
RccordsAffected 受影响的记录数
个人感觉 Sqlcommmand一般与Sqldatareader结合来实现对数据库的数据读取,Sqlcommmand相当于对数据库发送请求

样例代码:

        private static void  Only_Sqldatareader(){SqlConnection  cn1 = new SqlConnection("server=.\\SQLEXPRESS;database=test3;uid=zy;pwd=123456");cn1.Open();string sql1 = "select * from test";SqlCommand cmd1 = new SqlCommand(sql1, cn1);//cmd1.Parameters();可以添加形参的传递SqlDataReader dr = cmd1.ExecuteReader();while (dr.Read()){Console.WriteLine("这是ID={0}", dr[0].ToString());Console.WriteLine("这是专业={0}", dr[1].ToString());}}
二、SqlConnection---对于数据库的连接

Sqlserver数据库连接方式有多种,这里只介绍最常用的通过SqlConnection和Sqlserver数据库用户名和密码验证来进行操作数据库。数据库连接有两种方法一种是windows的登陆模式另一种是sqlserver的登陆模式


数据库连接字符串:
string connString = "data source=119.180.261.117,1433;initial catalog=anxiuyun;user id=sa;pwd=sa";
这里data source 是指数据库地址和端口号,需要注意的是地址和端口号之间是用","进行分隔的;initial catalog 是数据库名字 ;user id和pwd分别指用户名和密码。
 String ConnectionString =”server=(local); Initial Catalog =stu;  ”;SqlConnection conn=new SqlConnection(); conn.ConnectionString=ConnectionString;conn.Open();

Open和Close方法分别用来打开和关闭数据库连接无参无返回值

Open方法:使用ConnectionString所指定的属性设置打开数据库连接

Close方法:关闭与数据库的连接,这是关闭任何打开连接的首选方法

如果不知道Connection对象在某个时候是打开是关闭时,可以检查Connection对象的State属性

三、Sqldatareader

类似于指针的形式读取数据库里面的记录,通过与Sqlcommmand结合,通过while来进行数据的遍历输出

代码

  /// <summary>/// 时间:2018-1-27/// 内容:运用Sqlcommmand来进行数据库数据的插入数据,同样的通过sql语句来进行对数据库的增删查改/// </summary>/// <param name="cn"></param>/// <param name="sql"></param>private static void  Command_with_Sqldatareader(out SqlConnection cn, out string sql){string myconnection = "server=.\\SQLEXPRESS;database=test3;uid=zy;;pwd=123456";//这是注释--连接数据库的过程cn = new SqlConnection(myconnection);cn.Open();//sql语句的实现sql = "insert into test values(1234,'信息计算111')";//sql语句的实现string sql_thrid = "delete from test where 专业='信息计算111'";string sql_fourth = "seelct *from test";string sql_5 = "update test set 专业='信息计算'where ID=1";SqlCommand cmd = new SqlCommand(sql, cn);//对数据库发送请求try//try catch 的结构{if (cmd.ExecuteNonQuery() == 1)//返回请求影响 的行数{Console.WriteLine("成功\n");}else{Console.WriteLine("失败\n");}}catch (Exception e){Console.WriteLine(e);}finally//最后关闭连接{cn.Close();}Console.Read();}
四、SqlDataAdapter-

相当于Dataset与数据库的桥梁,首先SqlDataAdapter通过与sql语句结合读取数据库的信息,然后再填充到Dataset中去。

直接样例代码:

 private static void Dataset_with_DataAdapter(){/*连接数据库的语句*/SqlConnection cn1 = new SqlConnection("server=.\\SQLEXPRESS;database=test3;uid=zy;pwd=123456");//sql登陆模式/*打开连接*/cn1.Open();/*查询语句*/string sql1 = "select *from test";/*对数据源进行处理*/SqlDataAdapter sda = new SqlDataAdapter(sql1, cn1);/*填充到dataset容器中*/DataSet c = new System.Data.DataSet();sda.Fill(c, "tabel");//1对于dataset 含有多种表的情况,遍历每一个表foreach (DataTable table in c.Tables){foreach (DataRow row in table.Rows){foreach (object field in row.ItemArray){Console.WriteLine(field);}//相应的行处理}//相应的表处理}//2对于特定的表来进行遍历foreach (DataRow mDr in c.Tables[0].Rows){foreach (DataColumn mDc in c.Tables[0].Columns){  /*输出语句*/Console.WriteLine(mDr[mDc].ToString());}}//try catch结构,对Dataset里面的内容进行修改并重新写会数据库try{//修改特定的数据c.Tables[0].Rows[0][1] = "信息学院";/* //删除Dataset里面的特定行c.Tables[0].Rows.RemoveAt(1);//删除Data里面的特定的列c.Tables[0].Columns.RemoveAt(1);*/SqlCommandBuilder cmdBld = new SqlCommandBuilder(sda);//重新写回数据库的语句sda.Update(c.Tables[0]);Console.Read();}catch (Exception x){Console.WriteLine(x);}finally{cn1.Close();}}
五、Dataset的使用

 DataSet类:表示数据在内存中的缓存,对应于一个关系数  据库的结构。由一组DataTable对象组成。
  DataTable类:表示内存中数据的一个表,对应于数据库中的表,由若干行和列组成。
  DataRow类:表示DataTable中的一行数据,对应于数据库中表的一行。
  DataColumn类:表示DataTable中列的结构,对应于数据库中表的一列。
  DataRelation类:表示两个DataTable对象之间的关联,如父/子关系,此关系类似于主键/外键关系。
  Constraint类:表示可在一个或多个DataColumn对象上强制的约束。约束是用于维护DataTable中数据的完整性的规则。
   其他类:如DataColumnCollection、 ConstraintCollection、
DataTableCollection、
DataRelationCollection等。 














  相关解决方案