zoukankan      html  css  js  c++  java
  • 使用ADO.NET操作数据库

    使用ADO.NET操作数据库
    ADO.NET概述
    大部分应用程序都需要访问数据库,那通常这些数据都存放在数据库中,为了是客户端能够访问数据库服务器上的数据,就需要数据库访问的方法和技术ADO.NET
    ADO.NET简介
    ADO.NET 是一种应用程序与数据源交互的 API,它支持的数据源包括数据库、文本文件、Excel 表格或者 XML 文件等。ADO.NET 封装在 System.Data 命名空间及其子命名空间(System.Data.SqlClient 和 System.Data.OleDb)中,提供了强大的数据访问和处理功能,包括索引、排序、浏览和更新等。

    ADO.NET的框架
    比较强大的是它与数据源断开连接时也可以使用数据

    例如:p276

    ADO.NET主要组件
    ADO.NET提供了两个组件用来访问数据库
    ⦁ DataSet数据集:独立于数据源的数据访问
    ⦁ .NET Framework数据提供程序:用于连接数据库执行命令,检索结果

     

    应用程序访问数据库期间经历了很多过程,刚刚说过,AOP.NET提供了两个组件,其中.NET Framework包含了下面这一大堆 ,那怎么去链接数据库呢,这里面提供了一个Connection对象(连接数据库用的),通过Connection建立对数据库的链接,把链接的桥梁打开,然后执行一些功能(insert delete),那这个命令由谁执行,左边Commend对象
    来执行,增、删、改,如果要执行查,查多个数据,就使用另一个对象DataReader对象,来负责从数据库中一条一读出来,这边还一个DtaAdapter对象,他是和数据源DataSet链接的


    导入什么命名空间取决于我们是用哪一个数据库

     

     

     

     

     


    使用Connection对象
    数据库链接对象


    认识Connection对象
    Connection:建立与特定的数据源的链接
    Command:对数据源执行命令
    DataReader:从数据源中读取只进且只读的数据流
    DataAdapter:用数据填充DataSet并解析更新

    为了建立链接Connection提供了一些属性和方法

    链接数据库之前必须调用.open方法打开,链接过后调用.Close关闭
    定义字符串链接的语法:
    Data Source = 服务器名;database = 数据库名;Uid = 用户名;pwd =密码
    密码位空就不写
    第一步写链接
    创建Connection对象
    打开数据库
    提示
    关闭数据库
    提示
    控制台停留
    案例:
    // 测试打开数据库的操作
    string connString = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Pwd=bdqn";
    SqlConnection connection = new SqlConnection(connString);
    // 打开数据库连接
    connection.Open();
    Console.WriteLine("打开数据库连接成功");
    // 关闭数据库连接
    connection.Close();
    Console.WriteLine("关闭数据库连接成功");
    Console.ReadLine();
    private string ConnString = "server=.;database = MobileManagers;uid=sa;pwd = 9426;";

     

     

     

    使用try-catch-finally
    // 测试打开数据库的操作
    string connString = "Data Source=.;Initial Catalog=MySchool;User ID=sa;pwd=bdqn";
    SqlConnection connection = new SqlConnection(connString);
    try
    {
    // 打开数据库连接
    connection.Open();
    Console.WriteLine("打开数据库连接成功");
    }
    catch (Exception ex)
    {
    Console.WriteLine("出现异常:" + ex.Message);
    }
    finally
    {
    // 关闭数据库连接
    connection.Close();
    Console.WriteLine("关闭数据库连接成功");
    Console.ReadLine();
    }


    <shangji1>


    使用Command对象
    Command(命令对象)用于封装和执行 SQL 命令并从数据源中返回结果,命令对象的 CommandText 属性用来保存最终由数据库管理系统执行的 SQL 语句。注意,不同的数据源需要使用不同的命令对象。下面列出了 Command 的主要成员:
    Connection:Connection 对象使用的数据库连接。
    CommandText:执行的 SQL 语句。
    ExecuteNonQuery():执行不返回行的语句,如 Updata 等,执行后返回受影响的行数。
    ExecuteReader():返回 DataReader 对象。
    ExecuteScalar():执行查询,并返回查询结果集中的第一行的第一列。
    虽然不同数据源的命令对象的名字不同略有不同,但使用方法是相同的,通常按以下步骤访问数据库源:
    虽然不同数据源的命令对象的名字不同略有不同,但使用方法是相同的,通常按以下步骤访问数据库源:
    1.创建数据库连接。 
    2.定义 SQL 语句。 
    3.创建 Command 对象,一般形式如下:
    SqlCommand comm = new SqlCommand( SQL语句, 数据库连接对象);
    也可采用以下形式创建 Command 对象。
    SqlCommand comm = new SqlCommand();
    comm.Connection = 数据库连接对象;
    comm.CommandText = "SQL语句";
    4.执行命令。
    注意:在执行命令前,必须打开数据库连接,执行命令后,应该关闭数据库连接。


    /// <summary>
    /// 操作数据库类
    /// </summary>
    class DBHlper
    {
    //连接字符串
    private const string strConn = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=bdqn";

    /// <summary>
    /// 检查用户信息
    /// </summary>
    /// <param name="userName">用户名</param>
    /// <param name="pwd">密码</param>
    /// <param name="strMsg">需返回的处理信息</param>
    /// <returns>成功&失败</returns>
    public bool CheckUserInfo(string userName, string pwd,ref string strMsg)
    {
    //创建数据库连接
    SqlConnection conn = new SqlConnection(strConn);

    try
    {
    //创建Sql语句
    string strSql = "select count(*) from Admin where LoginId='" + userName + "' and LoginPwd='" + pwd + "'";
    conn.Open();

    //创建Command命令
    SqlCommand comm = new SqlCommand(strSql, conn);
    int iRet = (int)comm.ExecuteScalar();
    if (iRet != 1)
    {
    strMsg = "用户名或密码错误!";
    return false;
    }
    else
    {
    return true;
    }
    }
    catch (Exception)
    {
    strMsg = "发生异常!";
    return false;
    }
    finally
    {
    //关闭数据库连接
    conn.Close();
    }
    }

    /// <summary>
    /// 测试MySchoo的数据库连接
    /// </summary>
    public void OpenConnection()
    {
    // 测试打开数据库的操作
    string connString = "Data Source=.;Initial Catalog=MySchool;User ID=sa;pwd=bdqn";
    SqlConnection connection = new SqlConnection(connString);

    try
    {
    // 打开数据库连接
    connection.Open();
    Console.WriteLine("打开数据库连接成功");
    }
    catch (Exception ex)
    {
    Console.WriteLine("出现异常:"+ex.Message );
    }
    finally
    {
    // 关闭数据库连接
    connection.Close();
    Console.WriteLine("关闭数据库连接成功");
    Console.ReadLine();
    }
    }
    }


    业务处理类
    /// <summary>
    /// 处理School业务信息类
    /// </summary>
    class SchoolManager
    {
    private DBOperation _dbOper = new DBOperation();//创建DBOperation的实例

    public void Login()
    {
    Console.WriteLine("请输入用户名:");
    string strUserName = Console.ReadLine();
    Console.WriteLine("请输入密码:");
    string strPwd = Console.ReadLine();
    // 需返回的结果信息
    string strMsg = string.Empty;
    bool bRet = _dbOper.CheckUserInfo(strUserName, strPwd, ref strMsg);
    if (bRet )
    {
    Console.WriteLine("登录成功!");
    }
    else
    {
    Console.WriteLine("登录失败!" + strMsg);
    }
    }


    测试类
    //管理员登录
    SchoolManager manger = new SchoolManager();
    manger.Login();

    Console.ReadLine();

     

     

     

     

  • 相关阅读:
    bert源码的文件、参数理解
    除了利用打印的方法保存colab,如何直接转化为图片(附使用tf自己预训练模型导入办法)
    sse、mse、rmse、 r-square
    我的开源之旅(也许中道崩卒哈哈哈)
    attention_utils无法导入
    那些天,shell脚本中曾经踩过的坑
    python通过webservice接口实现配置下发
    python源文件转换成exe问题解决贴
    suds库使用说明官方文档
    两个实用linux小工具
  • 原文地址:https://www.cnblogs.com/SFHa/p/8304108.html
Copyright © 2011-2022 走看看