ADO.NET 连接数据库

本文介绍如何使用ADO.NET连接SQL Server数据库并执行基本操作,包括建立连接、执行SQL命令、使用数据适配器填充数据集、更新数据集以及利用DataReader读取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:添加命名空间

   System.Data.SqlClient中的SQL Server访问类;

2:与SQL Server数据库建立连接,ADO.NET提供Connection对象用于建立与SQL Server数据库的连接

   string connectionStr = "server=.;database=Train;uid=sa;pwd=123456"; //定义连接字符串  

   SqlConnection connection = new SqlConnection (connectionStr);     //实例化Connection对象用于连接数据源  

   connection.Open();      //打开数据库连接  

    ......  

   connection.Close();     //关闭数据库连接

3:与SQL Server数据库建立连接后,使用命令对象SqlCommand类直接对数据库进行操作

(1) 构造命令对象

   string connectionStr = "server=.;database=Train;uid=sa;pwd=123456"; //定义连接字符串

   SqlConnection connection = new SqlConnection (connectionStr);     //实例化Connection对象用于连接数据源

   connection1.Open();      //打开数据库连接  

   SqlCommand command = new SqlCommand ();     //构造一个名为command的命令对象  

   command.Connection = connection;     ///command使用的连接对象为connection

   command.CommandText = "SELECT * FROM TestDepot";   //从TestDepot表中选择所有数据     注意:CommandText的属性值(类型为字符串)默认情况下是SQL语句,也可以是个存储过程名 

    ......  

   connection1.Close();     ///关闭数据库连接

(2) 执行命令

    string connectionStr = "server=.;database=Train;uid=sa;pwd=123456"; //定义连接字符串

    SqlConnection connection = new SqlConnection (connectionStr);     //实例化Connection对象用于连接数据源

    connection.Open();      //打开数据库连接  

    string sqlStr = "INSERT INTO TestDepot(TD_TestAnswer) VALUES('b')";     //用于向A表插入记录的SQL语句  

    string sqlStr="UPDATE TestDepot SET TD_TestAnswer='a' WHERE TD_TestAnswer='b' ";

    string sqlStr ="DELETE FROM TestDepot ";

    SqlCommand command = new SqlCommand (sqlStr, connection);     //构造函数指定命令对象所使用的连接对象connection1以及命令文本sqlStr  

    command.ExecuteNonQuery();     //ExecuteNonQuery()方法返回值为一整数,代表操作所影响到的行数     注意:ExecuteNonQuery()方法一般用于执行UPDATE、INSERT、DELETE等非查询语句  

     ......  

    connection.Close();     ///关闭数据库连接

4:使用SqlDataAdapter数据适配器类访问数据库     注意:它既可以将数据库中数据传给数据集中的表,又可将数据集中的表传到数据库中。简言之,数据适配器类用于数据源与数据集间交换数据

    string connectionStr = "server=.;database=Train;uid=sa;pwd=123456"; //定义连接字符串

    SqlConnection connection = new SqlConnection (connectionStr);     //实例化Connection对象用于连接数据源

    connection.Open();      //打开数据库连接 

    string sqlStr = "SELECT * FROM TestDepot"; //从TestDepot表中选择所有数据的SQL语句  

    SqlDataAdapter dataAdapter = new dataAdapter (sqlStr, connection); //构造名为dataAdapter的数据适配器对象,并指定连接对象connection以及SELECT语句  

    DataSet dataSet = new DataSet(); //构造名为dataSet的数据集对象  

    dataAdapter.Fill(dataSet); //使用SqlDataAdapter类中的Fill()方法将数据填充到数据集中     注意:SqlDataAdapter类中的Fill()方法和Update()方法可用于将数据填充到单个数据表或数据集中 

    DataTable table = new DataTable();

    table = dataset.Tables[0];

    ......  

    connection.Close();  //关闭数据库连接

5:使用DataSet数据集表示数据库中的数据

(1) 填充数据集(将外部数据源数据加载到数据集中)

    string connectionStr = "server=.;database=Train;uid=sa;pwd=123456"; //定义连接字符串

    SqlConnection connection = new SqlConnection (connectionStr);     //实例化Connection对象用于连接数据源

    connection.Open();      //打开数据库连接

    string sqlStr = "SELECT * FROM TestDepot"; //从TestDepot表中选择所有数据的SQL语句    

    SqlDataAdapter dataAdapter = new dataAdapter (sqlStr, connection);//构造名为dataAdapter1的数据适配器对象,并指定连接对象connection以及SELECT语句  

    DataSet dataSet = new DataSet(); //构造名为dataSet的数据集对象  

    dataAdapter.Fill(dataSet); //使用SqlDataAdapter类中的Fill()方法将数据填充到数据集中     注意:SqlDataAdapter类中的Fill()方法和Update()方法可用于将数据填充到单个数据表或数据集中

    ......  

    connection.Close(); //关闭数据库连接

(2) 更新数据集(通过数据集更新数据源)

    string connectionStr = "server=.;database=Train;uid=sa;pwd=123456"; //定义连接字符串

    SqlConnection connection = new SqlConnection (connectionStr);     //实例化Connection对象用于连接数据源

    connection.Open();      //打开数据库连接

    string sqlStr = "SELECT * FROM TestDepot"; //从TestDepot表中选择所有数据的SQL语句    

    SqlDataAdapter dataAdapter = new dataAdapter (sqlStr, connection);//构造名为dataAdapter1的数据适配器对象,并指定连接对象connection以及SELECT语句 

    DataSet dataSet = new DataSet(); //构造名为dataSet的数据集对象 

    dataAdapter.Fill(dataSet); //使用SqlDataAdapter类中的Fill()方法将数据填充到数据集中     注意:SqlDataAdapter类中的Fill()方法和Update()方法可用于将数据填充到单个数据表或数据集中

    DataRow dataRow = dataSet.NewRow(); //调用数据表的NewRow()方法新建一个空记录  

    dataSet.Tables[0].Rows.Add(dataRow);  //修改数据集,增加一个新纪录  

    dataAdapter1.Update(dataSet); //将更改后的数据集更新数据库 

     ......  

     connection.Close();  //关闭数据库连接

6:使用DataReader数据读取器从一个数据源中选择某些数据(功能最弱)

   string connectionStr = "server=.;database=Train;uid=sa;pwd=123456"; //定义连接字符串

    SqlConnection connection = new SqlConnection (connectionStr); //实例化Connection对象用于连接数据源

    connection.Open(); //打开数据库连接

    SqlCommand command = new SqlCommand (); //构造一个名为command的命令对象  

    command.Connection = connection; //command使用的连接对象为connection

    string sqlStr = "SELECT TD_TestID FROM dbo.TestDepot ORDER BY TD_TestID DESC"; //从TestDepot表中选择数据的SQL语句 

    SqlDataReader dataReader = command1.ExecuteReader(); //DataReader类没有构造函数,不能实例化,需要通过调用Command对象的command的ExecuteReader()方法  

    while (dataReader.Read()) //DataReader的Read()方法用于读取数据,每执行一次该语句,DataReader就向前读取一行数据;如果遇到末尾,就返回False,否则为True  

    {

     id = int.Parse(sdr["TD_TestID"].ToString());

    }  

    ......  

    connection.Close(); //关闭数据库连接

转载于:https://www.cnblogs.com/txwm/archive/2012/09/10/2678812.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值