C#.NET的Winform程序中使用ADO.NET操作SQL Server数据库

时间:2021-01-21 00:45:16

1:添加命名空间System.Data.SqlClient中的SQL Server访问类;

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

   string connectionStr = "server=服务器名;database=数据库名;uid=用户名;pwd=密码";      ///定义连接字符串
   SqlConnection connection1 = new SqlConnection (connectionStr);     ///实例化Connection对象用于连接数据源
   connection1.Open();      ///打开数据库连接
   ......
   connection1.Close();     ///关闭数据库连接

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

(1) 构造命令对象

   string connectionStr = "server=服务器名;database=数据库名;uid=用户名;pwd=密码";      ///定义连接字符串
   SqlConnection connection1 = new SqlConnection (connectionStr);     ///实例化Connection对象用于连接数据源
   connection1.Open();      ///打开数据库连接
   SqlCommand command1 = new SqlCommand ();     ///构造一个名为command1的命令对象
   command1.Connection = connection1;     ///command1使用的连接对象为connection1
   command1.CommandText = "SELECT * FROM A";     ///从A表中选择所有数据     注意:CommandText的属性值(类型为字符串)默认情况下是SQL语句,也可以是个存储过程名
   ......
   connection1.Close();     ///关闭数据库连接

(2) 执行命令

   string connectionStr = "server=服务器名;database=数据库名;uid=用户名;pwd=密码";      ///定义连接字符串
   SqlConnection connection1 = new SqlConnection (connectionStr);     ///实例化Connection对象用于连接数据源
   connection1.Open();      ///打开数据库连接
   string sqlStr = "INSERT INTO A() VALUES();"     //用于向A表插入记录的SQL语句
   SqlCommand command1 = new SqlCommand (sqlStr, connection1);     ///构造函数指定命令对象所使用的连接对象connection1以及命令文本sqlStr
   command1.ExecuteNonQuery();     ///ExecuteNonQuery()方法返回值为一整数,代表操作所影响到的行数     注意:ExecuteNonQuery()方法一般用于执行UPDATE、INSERT、DELETE等非查询语句
   ......
   connection1.Close();     ///关闭数据库连接

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

   string connectionStr = "server=服务器名;database=数据库名;uid=用户名;pwd=密码";      ///定义连接字符串
   SqlConnection connection1 = new SqlConnection (connectionStr);     ///实例化Connection对象用于连接数据源
   connection1.Open();      ///打开数据库连接
   string sqlStr = "SELECT * FROM A";     ///从A表中选择所有数据的SQL语句
   SqlDataAdapter dataAdapter1 = new dataAdapter (sqlStr, connection1);     ///构造名为dataAdapter1的数据适配器对象,并指定连接对象connection1以及SELECT语句
   DataSet dataSet1 = new DataSet();     ///构造名为dataSet1的数据集对象
   dataAdapter1.Fill(dataSet1);     ///使用SqlDataAdapter类中的Fill()方法将数据填充到数据集中     注意:SqlDataAdapter类中的Fill()方法和Update()方法可用于将数据填充到单个数据表或数据集中
   ......
   connection1.Close();     ///关闭数据库连接

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

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

   string connectionStr = "server=服务器名;database=数据库名;uid=用户名;pwd=密码";      ///定义连接字符串
   SqlConnection connection1 = new SqlConnection (connectionStr);     ///实例化Connection对象用于连接数据源
   connection1.Open();      ///打开数据库连接
   string sqlStr = "SELECT * FROM A";     ///从A表中选择所有数据的SQL语句
   SqlDataAdapter dataAdapter1 = new dataAdapter (sqlStr, connection1);     ///构造名为dataAdapter1的数据适配器对象,并指定连接对象connection1以及SELECT语句
   DataSet dataSet1 = new DataSet();     ///构造名为dataSet1的数据集对象
   dataAdapter1.Fill(dataSet1);     ///使用SqlDataAdapter类中的Fill()方法将数据填充到数据集中     注意:SqlDataAdapter类中的Fill()方法和Update()方法可用于将数据填充到单个数据表或数据集中
   ......
   connection1.Close();     ///关闭数据库连接

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

   string connectionStr = "server=服务器名;database=数据库名;uid=用户名;pwd=密码";      ///定义连接字符串
   SqlConnection connection1 = new SqlConnection (connectionStr);     ///实例化Connection对象用于连接数据源
   connection1.Open();      ///打开数据库连接
   string sqlStr = "SELECT * FROM A";     ///从A表中选择所有数据的SQL语句
   SqlDataAdapter dataAdapter1 = new dataAdapter (sqlStr, connection1);     ///构造名为dataAdapter1的数据适配器对象,并指定连接对象connection1以及SELECT语句
   DataSet dataSet1 = new DataSet();     ///构造名为dataSet1的数据集对象
   dataAdapter1.Fill(dataSet1);     ///使用SqlDataAdapter类中的Fill()方法将数据填充到数据集中     注意:SqlDataAdapter类中的Fill()方法和Update()方法可用于将数据填充到单个数据表或数据集中
   DataRow dataRow1 = dataSet.NewRow();     ///调用数据表的NewRow()方法新建一个空记录
   dataSet1.Tables[0].Rows.Add(dataRow1);     ///修改数据集,增加一个新纪录
   dataAdapter1.Update(dataSet1);     ///将更改后的数据集更新数据库
   ......
   connection1.Close();     ///关闭数据库连接

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


   string connectionStr = "server=服务器名;database=数据库名;uid=用户名;pwd=密码";      ///定义连接字符串
   SqlConnection connection1 = new SqlConnection (connectionStr);     ///实例化Connection对象用于连接数据源
   connection1.Open();      ///打开数据库连接
   SqlCommand command1 = new SqlCommand ();     ///构造一个名为command1的命令对象
   command1.Connection = connection1;     ///command1使用的连接对象为connection1
   command1.CommandText = "SELECT * FROM A";     ///从A表中选择所有数据     注意:CommandText的属性值(类型为字符串)默认情况下是SQL语句,也可以是个存储过程名
   SqlDataReader dataReader1 = command1.ExecuteReader();     ///DataReader类没有构造函数,不能实例化,需要通过调用Command对象的command1的ExecuteReader()方法
   while (DataReader1.Read())     ///DataReader的Read()方法用于读取数据,每执行一次该语句,DataReader就向前读取一行数据;如果遇到末尾,就返回False,否则为True
   {
   
   }
   ......
   connection1.Close();     ///关闭数据库连接