zoukankan      html  css  js  c++  java
  • C#数据库编程

    数据库的使用是非常重要的技术,它几乎跟所有的编程语言都有关联。C#提供的ADO.NET数据库访问方式有SQL Server与 OLE DB两种。两者相比较,前者是针对于SQL Server数据库的连接,所以访问SQL Server数据库效率会非常之高,后者可以针对广泛的数据操作,相对来说,效率比较低。如果不涉及到数据库的特例,他们的大致方法是一样的。

      首先,欲连接数据库,必须有个连接对象Connection,可以有SqlConnection与OleDbConnection,具体使用哪一个连接对象,取决于你需连接的数据库类型。下面给出两种连接方式的代码。

    SQL Server数据访问

    string strConn ="Integrated Security=SSPI;Initial Catalog=MyDatabase;Data Source=MyDataSource ";

    Integrated Security 可以设置为: True, false, yes, no ,这四个的意思很明白了,还可以设置为:sspi ,相当于 True,建议用这个代替 True。Integrated Security=SSPI 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器,如果SQL SERVER服务器不支持这种方式登录时,就会出错。Initial Catalog后面接的是数据库 Data Source后面接的是资源数据。

    SqlConnection conn = new SqlConnection(strConn);//创建连接对象

    conn.Open();//打开连接,在实战项目中,会将其封装起来,再加上 conn.State == ConnectionState.Close的判断

    Ole Db数据访问

    string strConn ="Provider=SQLOLEDB;Data Source=localhost;Initial  Catalog=MyDatabase;Integrated Security=SSPI";

    OleDbConnection conn=new OleDbConnection (strConn);

    conn.Open();

    上面的代码如果没有异常抛出,那就说明已经顺利的连接上了数据库。接下来就是创建DataAdapter来完成访问数据库的工作。DataAdapter的工作是DataSet的基础,其内容就是建立一个DataSet与数据库的中间层来协调访问。同样的根据数据库的类型不同可以分为SqlDataAdapter与OleDbDataAdapter两种适配器。

    SqlDataAdapter adapter = new SqlDataAdapter();

    string strSql = "select * from TableName";

    adapter.SelectCommand = new SqlCommand(strSql,conn);

    //SqlCommandBuilder myCB = new SqlCommandBuilder (adapter);

    DataSet myDataSet = new DataSet ();

    adapter.Fill(myDataSet,"表名");

    这段代码用到了SqlDataAdapter、DataSet、SqlCommand、SqlCommandBuilder四个对象。SqlDataAdapter的作用就是负责与数据库的通讯访问,同时与DataSet相连,它的内部有四个很重要的Command对象(同样分为SqlCommand和OleDbCommand),都是访问数据库必用的,分别为SelectCommand、InsertCommand、UpdateCommand、DeleteCommand对象。这些Command对象便是专门用来完成对数据库的查询、插入、更新、删除操作,它们就像四个大臣,在DataAdapter的控制下分别主管各自的事情。其中SelectCommand是它们四个中的老大,由它可以自动的构造生成另外的三个。构造生成的过程就是应用CommandBuilder。在这之前,我们只需要指定DataAdapter中的SelectCommand对象,就可以了。

    我就是我,颜色不一样的烟火
  • 相关阅读:
    Python 里的下划线
    浅谈TCP拆包粘包问题
    40 张图带你搞懂 TCP 和 UDP
    头条面试官问:如何保证网络传输的可靠性?这就很尴尬了
    TCP协议灵魂12问,面试总会用得到(建议收藏)
    TCP网络握手
    HTTP1.0、HTTP1.1和HTTP2.0的区别
    面试官:这波HTTP究极combo,你顶得住吗?_chuhe1989的博客-CSDN博客
    腾讯面试官:说一下Android网络知识和框架?
    网络通信必备基础之Http协议&TCP/IP协议(二)
  • 原文地址:https://www.cnblogs.com/liangege/p/6387101.html
Copyright © 2011-2022 走看看