• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    当年学习ADO.NET的笔记
    那些年我还在学ADO.NET
    那些年学习了ASP.NET后又开始学习ASP.NET的新知识,ADO.NET用于访问数据库,一般可以分为连接模式和非连接模式。连接模式指的是在访问数据时,一直与数据库保持连接,访问完数据后才与数据库断开连接,主要采用的ADO.NET对象是Connection、Command、DataReader等;连接模式指的是通过数据集的方式对数据库进行操作,将数据读到内存中,从而完成数据的操作,数据集会自动更新到数据库,主要采用ADO.NET对象是DataAdapter、DataSet等。下面的我们就来看一下代码吧。
    本示例代码采用工厂模式的方式,这样就可以达到只改变少量的代码完成数据库之间的切换,工厂模式是要采用的对象有以下几个:DbProviderFactory、DbConnection、DbTransaction
    、DbCommand、DbDataReader、DbDataAdapter、DbCommandBuilder等。

    1、 共同的连接串

    复制代码 代码如下:

    string ProviderName = "System.Data.SqlClient";
    string ConnStr = "Data Source=.;Initial Catalog=Northind;Integrated Security=True";
    string sqlStr = "select * from dbo.Categories";


    2、 非连接模式代码如下:

    复制代码 代码如下:

    public void getSqlConnection()
    {
    //得到一个数据提供者,根据其传入的数据提供者对象
    DbProviderFactory dbf = DbProviderFactories.GetFactory(ProviderName);
    //创建连接
    DbConnection conn = dbf.CreateConnection();
    //连接字符串
    conn.ConnectionString = ConnStr;
    conn.Open();
    DbTransaction ts = conn.BeginTransaction();
    DbCommand dbcmd = null;
    try
    {
    dbcmd = dbf.CreateCommand();
    dbcmd.CommandText = sqlStr;
    dbcmd.Connection = conn;
    dbcmd.Transaction = ts;
    DbDataReader dr = dbcmd.ExecuteReader();
    while (dr.Read())
    {
    Console.WriteLine(dr[1].ToString());
    }
    dr.Close();
    ts.Commit();
    }
    catch (Exception e)
    {
    ts.Rollback();
    }
    finally
    {
    conn.Close();
    if (dbcmd != null)
    {
    dbcmd.Dispose();
    }
    }
    }

    效果:

    3、 连接模式代码:
    复制代码 代码如下:

    public void getDataSetConnection()
    {
    //得到一个数据提供者,根据其传入的数据提供者对象
    DbProviderFactory dbf = DbProviderFactories.GetFactory(ProviderName);
    //创建连接
    DbConnection conn = dbf.CreateConnection();
    //连接字符串
    conn.ConnectionString = ConnStr;
    //创建DataAdapter对象
    DbDataAdapter da = dbf.CreateDataAdapter();
    //创建自动生成sql语句对象
    DbCommandBuilder dbCmdb = dbf.CreateCommandBuilder();
    using (DbCommand dbcmd = dbf.CreateCommand())
    {
    dbcmd.CommandText = sqlStr;
    dbcmd.Connection = conn;
    //DbDataAdapter指定命令
    da.SelectCommand = dbcmd;
    //DbCommandBuilder指定dataAdpter
    dbCmdb.DataAdapter = da;
    DataSet ds = new DataSet();
    da.Fill(ds);
    // ds.Tables[0].Rows[0].Delete();
    da.Update(ds);
    DataTable dt = ds.Tables[0];
    DataRow dr;
    for (int i = 0; i dt.Rows.Count; i++)
    {
    dr = dt.Rows[i];
    Console.WriteLine(dr[1] + " " + dr[2]);
    }
    }
    }

    效果:

    以上是一个简单的例子,在正常情况下,就不会把连接串写成字符串,应放在config文件中,同样SQL语句也会改为存储过程,这样改起来比较方便。

    总结

    那些年学习ADO.NET,基本了解了怎样去访问数据库,对其进行操作,现在.NET又有了一些新的方法,比如说使用Linq、DbContext等;此文以回忆那些年学习的日子。
    您可能感兴趣的文章:
    • ADO.NET EF中的实体修改方法
    • 告别ADO.NET实现应用系统无缝切换的烦恼(总结篇)
    • ADO.NET实用技巧两则
    • 用C#对ADO.NET数据库完成简单操作的方法
    • 数据库开发总结(ADO.NET小结)
    • ASP.NET:ADO.NET的DataAdapter对象
    • ADO.NET 的最佳实践技巧
    • 一个经典的ADO.NET入门例子
    • ADO.NET实用技巧两则
    上一篇:那些年,我还在学习asp.net(二) 学习笔记
    下一篇:ASP.NET页面优化 性能提升8倍的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    当年学习ADO.NET的笔记 当年,学习,ADO.NET,的,笔记,