C#数据访问技术介绍

C#数据访问技术介绍

在C#中ADO.NET是数据访问的架构,它是数据库应用程序和数据源之间的沟通桥梁,主要提供一个面向对象的数据库访问架构,用来开发数据库应用程序。ADO.NET的技术主要包括Connection、Command、DataReader、DataSet和DataTable 6个对象
其中Connection可以分为四种,我就不一一介绍了,那我就介绍我比较常用的SqlConncetion,它是提供SQL.Server.Net 程序的数据连接对象,它需要用到using System.Data.SqlClient的命名空间。
我们在创建数据库连接对象时要知道它的构造函数的参数,也就是数据库连接字符串。
其中数据库连接字符串中又有几个比较重要的参数需要知道,分别如下:
DataBase 或Initial Catalog: 数据库名称;
Data Source或Server: 服务签名或者是Access数据库的文件名。
PassWord 或pwd:Sql数据库的密码;
User ID或 uid: sql的用户名
Integrated Security:是否安全连接。

1、下面通过一个实例来展示结果:

首先我们先创建一个控制台应用程序。然后在Main方法中写入以下代码

static void Main(string[] args)
        {
            //声明数据库连接字符串
            string strconnect = @"Server=DESKTOP-EDDR3KK\SQL; User ID=sa; Pwd=123; DataBase=BookManage";
            //创建数据库连接对象
            SqlConnection sqlConnection = new SqlConnection(strconnect);
            //打开数据库连接对象
            sqlConnection.Open();
            //判断数据库服务是否成功打开
            if (sqlConnection.State == System.Data.ConnectionState.Open)
            {
                Console.WriteLine("Sql server 数据库成功打开了");
                //关闭数据库服务
                sqlConnection.Close();
            }
            if (sqlConnection.State == System.Data.ConnectionState.Closed)
            {
                Console.WriteLine("Sql server 服务已关闭");
            }
                       Console.Read();
        }

这时候如果我们电脑上没有禁用SQL Server 服务的话就能打开SQL 服务了,控制台输出结果如下。
在这里插入图片描述

2、我们创建数据可连接的目的是为了操作数据库中的数据,这个时候我们就要用到Command对象了。它可以实现对数据源执行查询、新增、修改、删除等操作。其中Command对象和Connection对象一样也可以分为4种,而我这里是要操作Sql Server服务的数据源,就介绍SqlCommand对象吧,其他的就不去介绍了。在此之前其中SqlCommand中有几个常用到的属性要介绍一下,分别如下:

CommandType:获取或设置Command 对象要执行的命令类型;
CommandText:获取或设置要对数据源执行的SQL 语句、存储过程或者表名
CommandTimeOut:获取或设置对执行命令生成错误之前的等待时间
Conncetion:获取或设置Command对象使的Conncet对象名称;
Parameters:获取Command对象需要使用的参数集合

那我们接着上面的实例继续(接if语句代码),代码如下:

  //判断数据库服务是否成功打开
            if (sqlConnection.State == System.Data.ConnectionState.Open)
            {
                Console.WriteLine("Sql server 数据库成功打开了");
                SqlCommand command = new SqlCommand(); //创建sqlcommand 对象
                command.Connection = sqlConnection; //指定数据库连接对象
                command.CommandType = System.Data.CommandType.Text; //要执行的命令类型(文本命令,存储语句)
                                                                    // command.CommandText = "SELECT * FROM dbo.Book";//要执行的SQL语句
                //当然也可以设置传递参数
                //int booktype = 1;
                //command.CommandText = "SELECT * FROM dbo.Book WHERE bookTypeID = " +  booktype + "";
                //向书籍类型表中添加一行数据,这里我比较懒直接写死变量值新增
                string strBookTypeName = "玄幻修仙"; //书籍类型名称
                string strbookTypeDesc = "XH05";//书籍类型描述
                //定义要执行的添加数据的SQL语句
                command.CommandText = "INSERT INTO dbo.BookType(bookTypeName, bookTypeDesc) VALUES('" + strBookTypeName + "', '" + strbookTypeDesc + "')";
    
                //判断ExecuteNonQuery方法返回值是否大于0,大于0表示新增成功
                if (Convert.ToInt32(command.ExecuteNonQuery()) > 0)
                {
                    Console.WriteLine("书籍类型新增成功!");
                }
                else
                {
                    Console.WriteLine("新增失败!");
                }
                //关闭数据库服务
                sqlConnection.Close();
            }

输出结果图片如下:
在这里插入图片描述
在这里插入图片描述
上面介绍的是通过CommandText属性设置用于新增数据到数据库的存储语句,至于修改和删除操作也一样,查询操作需要用到DataReader对象来接收查询返回的数据集,在下面对讲到,当然SqlCommand不仅仅能通过Sql语句对数据库进行操作,而且能通过存储过程或者表名操作数据库信息,其他操作就不介绍了。

3、好,下面介绍的就是DataReader 数据读取对象,它是一个简单的数据集,主要从数据源中读取只读的数据集,常用来检索大量数据,**其中DataReader对象又可以分为4种,分别是SqlDataReader,OleDataReader,OdbcDataReader和OracleDataReader。 因为我用的是SQL Server 数据库服务,所以只介绍SqlDataReader 。顺便介绍一下它一些常用的属性以及方法,具体如下。

常用属性:
HasRows :判断数据库是否有数据
FieldCount:获取当前行的列数。
RecordAffected:获取执行SQL语句所更改、添加或者删除的行数

常用方法:
Read :使用DataReader对象前进到下一条记录
Close:关闭DataReader对象
Get:用来取数据集当前行的某一列数据。

下面通过一个实例来获取数据库的数据并进行分列显示到控制台中,通过SQL语句查询所有书籍类型,代码如下:

static void Main(string[] args)
        {
//声明数据库连接字符串
            string strconnect = @"Server=DESKTOP-EDDR3KK\SQL; User ID=sa; Pwd=123; DataBase=BookManage";
            //创建数据库连接对象
            SqlConnection sqlConnection = new SqlConnection(strconnect);
            //打开数据库连接对象
            sqlConnection.Open();
            //判断数据库服务是否成功打开
            if (sqlConnection.State == System.Data.ConnectionState.Open)
            {
                Console.WriteLine("Sql server 数据库成功打开了");
                SqlCommand command = new SqlCommand(); //创建sqlcommand 对象
                command.Connection = sqlConnection; //指定数据库连接对象
                command.CommandType = System.Data.CommandType.Text; //要执行的命令类型(文本命令,存储语句)   
 			 //定义SQL语句查询书籍类型信息                                               
                command.CommandText = "SELECT * FROM dbo.BookType";
                //使用ExecuteReader方法返回值创建SqlDataReader对象
                SqlDataReader reader=command.ExecuteReader();
                try
                {
        			//判断返回的DataReader对象是否有数据
                    if (reader.HasRows)
                    {
                        Console.WriteLine("书籍类型ID        书籍类型名称         书籍类型描述");
                        while (reader.Read())
                        {
            //通过字段名获取当前行的某列的值
                            Console.WriteLine(reader["bookTypeID"].ToString() + "                   " + reader["bookTypeName"].ToString() + "                          " + reader["bookTypeDesc"]);
                        }
                    }
                }
                catch (SqlException ex)
                {
                    Console.WriteLine(ex);
                }
                //关闭数据库服务
                sqlConnection.Close();
            }
          
            Console.Read();
        }

控制台输出结果如下:
在这里插入图片描述
好了这就是SqlDataReader查询数据的操作。至于DataSet和DataAdapter的操作我还没去了解,所以不能介绍了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值