• .net数据库操作


          刚接触到数据库时总是被数据库中的一些基本概念,比如Connection、Command、DataReader等,给整的糊里糊涂。如今,对数据库的基本操作有了一定的认识,特此做出总结,以便后续工作中查阅。

      Microsoft公司提供了几种常见的数据源操作:Sql server数据库,OLEDB数据源,ODBC数据源,Oracle数据库,而针对它们的一些常规操作可以说是大同小异,本文借以对Sql server数据库的操作进行Connection、Command、DataSet、DataAdapter、DataReader的介绍。

    SqlConnection:

    Sqlconnection是对象用来连接sql server数据库的,程序员对数据库的一切操作都是建立在数据库已经连通的基础上,因此对它有必要做一些基本的了解。

    SqlConnection的基本语法是(拿一个连接的语句):Data Source=192.168.100.46;Initial Catalog=database;User ID=sa;Password=sa

    而在实际的操作过程中经常把它放到配置文件中,以便后续进行更改,当然也可以把其基本项放到前台界面填写操作。

    放在配置文件中,参考代码:

    <?xml version="1.0"?>
    <configuration>
      <appSettings>
        <add key="ConnectionString" value="Data Source=192.168.100.46;Initial Catalog=database;User ID=sa;Password=sa"/>
        </appSettings>
    <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
    一句话:SqlConnection是对象连接数据库的。

    SqlCommand:

    在对象和数据库建立连接后,可以使用Command对象对数据库进行增、删、改、查等基本操作,操作实现方式可以是使用sql语句进行,也可以是使用存储过程。下面简单介绍Command对象的常用属性及其方法。

    常用属性:

    CommandType:获取或设置Command对象要执行命令的类型

    CommandText:获取或设置要对数据源执行的SQL语句、存储过程或表名

    CommandTimeOut:获取或设置在终止对执行命令的尝试并生成错误之前的等待时间

    Connection:获取或设置此Command对象使用的Connection对象的名称

    Parameters:获取Command对象要使用的参数集合。

    常用方法:

    ExecuteNonQuery:执行sql语句并返回受影响的行数

    ExecuteReader:执行返回数据集的select语句

    ExecuteScalar:执行查询,并返回查询所返回的结果集中第一行第一列

    一句话:SqlCommand是需要对数据库做出改变或调整时使用的,使用后(除查询)数据库会有变化。

    DataSet:

    DataSet是数据库操作过程中的核心对象,支持断开式、分布式数据方案的核心对象。DataSet对象是创建在内存中的集合对象,它可以包含任意数量的数据表,以及所有的表的约束、索引、和关系,就相当于一个小型关系的数据库。而一个dataset对象包含一组DataTable对象,这些对象可以与数据相关联,其中每个dataTable对象都是由DataColumn和DataRow对象组成的。

    对DataSet的常见操作:

    以编程方式在DataSet中创建dataTable、DataRelation、Constraint,并使用数据填充表

    通过DataAdapter填充dataSet

    使用XML加载和保持DataSet内容

    一句话:DataSet是一个保存数据的小型数据库,支持断开数据库连接后的操作。

     DataAdapter:

    DataAdapter对象是DataSet对象和数据源之间联系的桥梁,主要是从数据源中检索数据、填充DataSet对象中的表或者把用户对DataSet做出的更改写入到数据库中。

    常用属性:

    selectCommand:获取或设置用于在数据源中选择记录的命令

    InsertCommand:获取或设置用于将新的记录插入到数据库中命令

    UpdateCommand:获取或设置用于更新数据源中记录的命令

    DeleteCommand:获取或设置用于从数据集中删除记录的命令

    常用方法:

    Fill:从数据源中提取数据以填充数据集

    Update:更新数据源

    一句话:DataAdapter对用于连接dataSet和数据源的。

    DataReader:

    DataReader是一个简单的数据集,用于从数据源中检索只读数据集,常用于检索大量数据。DataReader每次读取数据时只在内存中保留一行记录,开销非常小。

    可以从Command对象的ExecuteReader方法从数据源中检索数据来创建DataReader对象。如:SqlDataReader sdr = cmd.ExecuteReader()

    常用方法:

    FieldCount:获取当前行的列数

    RecordsAffectde:获取执行SQL语句所更改、添加或删除的行数

    常用方法:

    Read:使用DataReader对象前进到下一条记录

    Close:关闭DataReader对象

    Get:用来读取数据集的当前行的某一列记录

    一句话:DataReader每次读取数据源时在内存中保留一行记录。

    综合运用:


    在实际项目开发中使用三层架构操作数据库,而最底层直接操作数据库会将上述所讲的一些基本概念综合运用,这里选择最常用到的两个方法以供参考:

    connectionString:数据库连接语句

    SQLString:sql语句

    //执行查询语句,返回dataset
    public static DataSet Query(string strSql)
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    DataSet ds = new DataSet();
    
                    try
                    {
                        conn.Open();
                        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(strSql, conn);
                        sqlDataAdapter.Fill(ds, "ds");
                    }
                    catch (SqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
    
                    return ds;
                }
            }
    //执行sql语句,返回影响的记录数
    public static int ExecuteSql(string strSql)
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(strSql, conn))
                    {
                        try
                        {
                            conn.Open();
                            int rows = cmd.ExecuteNonQuery();
                            return rows;
                        }
                        catch (SqlException ex)
                        {
                            conn.Close();
                            throw new Exception(ex.Message);
                        }
                    }
                }
            }
  • 相关阅读:
    selenium 手写xpath
    pythonselenium面试常问问题
    pytest介绍
    pytest + allure 生成自测报告
    python自动化接口面试题
    接口测试面试题汇总
    Eclipse 视图与视窗
    Access数据库密码为不可见字符的处理方式
    eclipse 导出jar 没有主清单属性的解决方法
    如何在 Windows 下编译 OpenSSL VS2013
  • 原文地址:https://www.cnblogs.com/linhuide/p/5804969.html
Copyright © 2020-2023  润新知