C#操作数据库之SqlClient模式编程实现附加分离数据库的程序实例。

一、程序界面

二、C#的三种访问数据库的模式

  • SqlClient模式
    是微软专门为其产品Sql Server数据库而设计的,所以如果欲使用Sql Server数据库开发应用程序的话,建议使用这种模式,其性能和效率是比其他模式的要高。
  • OleDb模式
  • Odbc模式
    OleDb模式和Odbc模式可以运用在任何支持该模式的数据 库产品中,如Access数据库、DB2、Sybase和Sql Server 数据库等。

三、SqlClient模式的编程

1、引入相关的命名空间

在C#中要操作数据库,一般情况需要引入两个命名空间。

  • 如果使用SqlClient模式的话,则需要引入如下命名空间:

using System.Data;
System.Data.SqlClient;

  • 如果使用OleDb模式的话,需要使用下面的命名空间:

using System.Data;
System.Data.Odbc;

2、定义连接字符串,并建立连接对象

在C#中,如果想连接数据库的话,需要使用Connection连接对象。
在SqlClient模式下,其基本连接字符串和连接对象如下:

  • 连接字;uid和pwd分别代表连接数据库的用户名和密码。

string connString = “server=.;database=testDB;uid=sa;pwd=123456;”

  • 定义连接字符串后,就可以建立SqlClient模式下的连接对象了

SqlConnection sConn = new SqlConnection(connString);

3、打开数据库连接

打开数据库使用Open方法,但在试图打开数据连接时会发生错误,因此常采用如下的异常控制方法

try{
sConn.Open();
}
catch(Exception ex){
MessageBox.Show(“发生错误:”+ex.Message);
}

4、Command命令对象的应用

Command用于向数据库传输的命令的对象,其构造函数常用两个参数

  • 一个参数是所使用的 命令文本(CommandText)
  • 另一个为所使用的连接对象Connection

假设我们想使用SqlClient模式查询Sql Server中TRecord数据库中GameDetails表中的Date(日期)和Sorce(分数)两列的值,则可以建立如下的命令对象(sConn参见建立的连接sConn:

SqlCommand sCmd = new SqlCommand("SELECT Date,Sorce FROM TRecord.dbo.GameDetails",sConn);
//亦可使用如下的形式:
//SqlCommand sCmd = new SqlCommand();
//sCmd.CommandText = "SELECT Date,Sorce FROM TRecord.dbo.GameDetails";
//sCmd.Connection = sConn;

5、命令对象常用的三个方法

命令对象常用的有三个方法:

  • ExecuteReader方法
    用于返回查询结果的全部数据。
  • ExecuteNonQuery方法
    用于返回所影响的行数,一般用于Insert、Update和Delete操作。
  • ExecuteScalar方法
    返回 结果中的第一行第一列的值。

6、数据读取器DataReader

DataReader用于从返回来的数据区中读取数据。
数据读取器应与命令对象配合使用

SqlDataReader sdr = null;

sdr = sCmd.ExecuteReader();     //执行命令对象,并用sdr指向结果集的第一条记录。

while(sdr.Read()){              //每读取一条记录后,指向其下一条记录

textBox2.Text = textBox2.Text + sdr["Date"]+" ";

textBox2.Text += sdr["Sorce"];    

textBox2.Text += "\r\n";        //换行

}

sdr.Close(); 

四、实现附加分离数据库的存储过程

  • sp_attach_db:将数据库附加到服务器。
    语法 :
    sp_attach_db [ @dbname = ] ‘dbname’ , [ @filename1 = ] ‘filename_n’ [ ,…16 ]
  • sp_detach_db 分离数据库
    sp_detach_db [ @dbname = ] ‘dbname’

五、参考资料

1、Dullman_c的博客https://blog.csdn.net/qq_34093024/article/details/78196870

六、程序下载

1、dalong10的下载https://download.csdn.net/download/dalong10/12912134

本文地址:https://blog.csdn.net/dalong10/article/details/108991858