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(); //关闭数据库连接