zoukankan      html  css  js  c++  java
  • 第一节、C#ADO.NET数据库操作

    C#ADO.NET

    在C#语言中提供了ADO.NET组件来实现连接数据库以及操作数据库中数据的功能;

    ADO(Active Data Object)是一个COM组件类库,用于访问数据库。是.Net平台上访问数据库组件。

    ADO.NET体系结构

     1、Connection类(连接)

    该类主要用于数据库中建立连接和断开连接操作,能通过类获得当前数据库连接状态。

    2、Command类(命令)

    向连接数据库发出操作命令。操作(增删改查)

    3、DataReader类(读取数据)

    该类用于读取从数据库中查询出来的数据;

    4、DataAdaper类(桥梁)

    该类与DataSet联用,它主要用于将数据库的结果运送到DataSet中保存;

    5、DataSet类(数据集)

    该类与DataAdaper类似,都用于存放对数据库查询的集合。差异,DataSet数据可反复读取、更改值。

    一、Conneciton连接

    SqlConection类中提供常用属性和方法如下

    属性或方法说明
    SqlConnection() 无参构造方法
    SqlConnection(string connectionstring) 带参数的构造方法,数据库连接字符串作为参数
    Connectionstring 属性,获取或设置数据库的连接串
    State 属性,获取当前数据库的状态,由枚举类型 Connectionstate 为其提供值
    ConnectionTimeout 属性,获取在尝试连接时终止尝试并生成错误之前所等待的时间
    DataSource 属性,获取要连接的 SQL Server 的实例名
    Open() 方法,打开一个数据库连接
    Close() 方法,关闭数据库连接
    BeginTransaction() 方法,开始一个数据库事务

    连接方式一:

    server=服务器名称/数据库的实例名;uid=登录名;pwd=密码;datatbase=s数据库名称
    

     连接方式二:

    Data Source=服务器名称/数据库的实例名;Initial Catalog=数据库名称;User ID=用户名;Password=密码;
    

      设置安全性环境:而是使用 SQL Server 验证方式登录数据库,即指定用户名和密码。

     数据库连接编写

      代码示范:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Connection_but_Click(object sender, EventArgs e)
            {
                //连接数据库对象
                SqlConnection conn = null;
    
                //连接数据库串
                string connStr = "Data source=.;Initial Catalog=MySchool;User ID=sa;Password=pwd";
    
                try
                {
                    conn = new SqlConnection(connStr);
                    conn.Open();
                    MessageBox.Show("已连接数据库");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("连接数据库失败!" + ex.Message);
                }
                finally
                {
                    if(conn!=null)
                    {
                        conn.Close();//关闭数据库连接
                    }
                }
            }
        }
    }
    View Code

    注意:

    • 数据连接使用后,需要关闭断开数据,以释放资源,关闭连接放在finally语句
    • 也可以使用using方式释放资源 
     private void button1_Click(object sender, EventArgs e)
            {
                string connStr = "Data source=.;Initial Catalog=MySchool;User ID=sa;Password=pwd";
                try
                {
                    using (SqlConnection conn = new SqlConnection(connStr))
                    {
                        conn.Open(); //打开数据库
                        MessageBox.Show("已连接数据库");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("连接数据库失败!" + ex.Message);
                }
            }

    二、Command命令操作

    所谓增删改查数据库命令

    SqlCommand类中常用的构造方法

    构造方法说明
    SqlCommand() 无参构造方法
    SqlCommand(string commandText,SqlConnection conn) 带参的构造方法,第 1 个参数是要执行的 SQL 语句,第 2 个参数是数据库的连接对象

    SqlCommand类提供不同属性和方法

    属性或方法说明
    CommandText 属性,Command 对象中要执行的 SQL 语句
    Connection 属性,获取或设置数据库的连接对象
    CommandType 属性,获取或设置命令类型
    Parameters 属性,设置 Command 对象中 SQL 语句的参数
    ExecuteReader() 方法,获取执行查询语句的结果
    ExecuteScalar() 方法,返回查询结果中第 1 行第 1 列的值
    ExecuteNonQuery() 方法,执行对数据表的增加、删除、修改操作

    执行

     示范代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Connection_but_Click(object sender, EventArgs e)
            {
                //连接数据库对象
                SqlConnection conn = null;
    
                //连接数据库串
                string connStr = "Data source=.;Initial Catalog=MySchool;User ID=sa;Password=123456";
    
                try
                {
                    conn = new SqlConnection(connStr);
                    conn.Open(); //打开数据库
                    //创建SqlCommand对象
                    SqlCommand cmd = new SqlCommand("insert into Student(StudentNo,StudentName,LoginPwd,Gender,GradeId,BornDate) values(1,'小美','123',1,1,'2021-3-17')", conn);
                    //ExecuteNonQuery 执行插入
                    int insertRow=cmd.ExecuteNonQuery();
                    if (insertRow > 0)
                    {
                        MessageBox.Show("执行影响返回行数:{" + insertRow + "}");
                    }
                   
                }
                catch (Exception ex)
                {
                    MessageBox.Show("连接数据库失败!" + ex.Message);
                }
                finally
                {
                    if(conn!=null)
                    {
                        conn.Close();//关闭数据库连接
                    }
                }
            }
        }
    }
    View Code

    数据库插入记录

  • 相关阅读:
    less 28-31
    less27 27a
    sqli 26 26a
    sqli lab 25 25a
    kail 更新源
    sqli lab 23 、24
    less 20 21 22
    less18 19
    less 17
    数字类型,字符串类型,列表类型
  • 原文地址:https://www.cnblogs.com/liuzz/p/14552751.html
Copyright © 2011-2022 走看看