C#学习记录(47)MSSQL数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenseyoulan/article/details/81455747

引言

      微软数据库是针对中小型企业的关系型数据库,操作简单易上手。首先介绍下C#.NET的数据库,以 ActiveX 数据对象(ADO)为基础 以 XML(扩展标记语言)为格式传送和接收数据:

            C#.NET应用程序  <----->ADO.NET<----->数据库

程序中使用System.Data 命名空间。

一. ADO.NET的框架:

       NET Framework数据提供程序是专门为数据处理以及快速地只进、只读访问数据而设计的组件。使用它,我们可以连接数据库、执行命令和检索数据,直接对数据库进行操作。
       DataSet(数据集)是专门为独立于任何数据源的数据访问而设计。使用它,我们可以不必直接和数据库打交道,可以大批量地操作数据,也可以将数据绑定在控件上。

.NET通过以下的对象来进行数据库的操作:
(1)Connection        建立与数据源的连接
(2)Command         对数据源执行操作命令
(3)DataReader      从数据源中读取只进且只读的数据流
(4)DataAdapter     用数据源填充DataSet并解析更新

1.Connection

Connection对象的主要属性和方法
属 性                                          说 明
ConnectionString                   用于连接数据库的连接字符串
方 法                                         说 明
Open()                              使用ConnectionString属性所指定的设置打开数据库连接
Close()                              关闭与数据库的连接

(1) 定义连接字符串(可以直接在第(2)步中编写)
不同的数据库连接字符串格式不同,SQL Server数据库的连接字符串格式一般为:
            Data Source=服务器名;Initial Catalog=数据库名; User ID=用户名;Pwd=密码
例如,要连接本机的pubs数据库,连接字符串写成:
            string connString = "Data Source=.;Initial Catalog=pubs;User ID=sa";
经验:
    服务器如果是本机,可以输入“.”来代替计算机名称或者IP地址。密码如果为空,可以省略Pwd一项。

(2). 创建 Connection 对象
调用定义好的连接字符串创建Connection 对象。
SqlConnection connection = new SqlConnection(connString);
(3). 打开与数据库的连接
调用Connection 对象的Open()方法打开数据库连接。
connection.Open( );

(4) 关闭数据库的连接

Connection.Close();

string connString = "Data Source=.;Initial Catalog=db_MrCy;UserID=sa;pwd=sa";
SqlConnection connection = new SqlConnection(connString);
// 打开数据库连接
connection.Open();
MessageBox.Show("打开数据库连接成功");
// 关闭数据库连接
connection.Close();
MessageBox.Show("关闭数据库连接成功");

2.使用Command对象
      打开数据库连接后,怎样操作数据呢?这就需要Command对象(命令对象),Command对象可以对数据库执行增删改查的命令。

Command对象的主要属性和方法
属 性                                       说 明
Connection                      Command对象使用的数据库连接
CommandText                执行的SQL语句
方 法                                       说 明
ExecuteNonQuery()   执行不返回行的语句,如update、delete等
ExecuteReader()        执行程序命令,返回DataReader对象

ExecuteScalar()         返回单个值,如执行count(*)等

ExecuteScalar()方法只返回查询结果的第一行第一列的值,所以当我们的查询结果只有一个值时,通常使用这个方法。方法的返回值要进行显式类型转换。
要使用Command对象,必须有一个已经连接的Connection对象,使用Command对象的步骤包括:
(1)创建数据库连接
         按照上节介绍的步骤创建一个Connection对象。
(2)定义执行的SQL语句
         将对数据库执行的SQL语句赋给一个字符串。
(3)创建Command对象
         使用已有的Connection对象和SQL语句串创建一个Command对象。
(4)执行SQL语句
         使用Command对象的某个方法执行命令。

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

SqlCommand command = new SqlCommand(sql, connection);  // 创建Command 对象

num = (int)command.ExecuteScalar();  // 执行SQL 查询

message = string.Format("tb_Waiter表中共有{0}条员工信息!",num);
MessageBox.Show(message,"查询结果",MessageBoxButtons.OK,MessageBoxIcon.Information);

3.DataReader对象查询、增删改数据

使用DataReader对象可以从数据库中检索只读数据,它每次从查询结果中读取一行到内存中,所以使用DataReader对数据库进行操作非常快。DataReader属于.NET Framework数据提供程序。

DataReader对象的主要属性和方法
属 性                说 明
HasRows         是否返回了结果
FieldCount      当前行中的列数
方 法                说 明
Read()        前进到下一行记录
Close()       关闭 DataReader 对象

使用DataReader的步骤:
1. 创建Command对象

sql是查询、增改删语句。

SqlCommand command = new SqlCommand(sql, connection);  // 创建Command 对象
2. 调用Command对象的ExecuteReader()方法创建DataReader对象
SqlDataReader dataReader = command.ExecuteReader();
3. 使用 DataReader 的 Read() 方法逐行读取数据这个方法返回一个布尔值,如果能读到一行记录,就返回True,否则返回False。
dataReader.Read();
4. 读取某列的数据,(type)dataReader[ 列名或序列号]像读取数组一样,用方括号来读取某列的值,如(string)dataReader["WaiterName"];  方括号可以像数组一样使用列的索引,从0开始,也可以使用列名,取出的值要进行类型转换。
5. 关闭 DataReader 对象
使用dataReader对象读取数据的时候会占用数据库连接,必须用它的Close()方法来关闭dataReader对象,才能用数据库连接进行其它操作。
dataReader.Close();

//创建连接对象
SqlConnection conn = *****;
string sql = "SELECT waitertype FROM tb_Waitertype"; // 查询员工类别的sql语句,也可以是增改删语句。
// 设置command命令执行的语句
SqlCommand command = new SqlCommand(sql, conn);
try
{
    conn.Open(); // 打开数据库连接
    SqlDataReader dataReader = command.ExecuteReader(); // 执行查询
    string waitertype = ""; // 类别名称
    // 循环读出所有的类别名,并添加到类别列表框中
    while (dataReader.Read())
    {
        waitertype = (string)dataReader["waiterType"];
        cboType.Items.Add(waitertype);
    }
    dataReader.Close();
}
catch (Exception ex)
{
    MessageBox.Show("操作数据库出错");
    Console.WriteLine(ex.Message);
}
finally
{
    conn.Close();
}

 

4.使用Listview控件绑定数据

列表视图控件的主要属性、事件和方法
属性                        说明
Columns                  “详细信息”视图中显示的列
FullRowSelect            当选中一项时,它的子项是否同该项一起突出显示
Items                    ListView中所有项的集合
MultiSelect              是否允许选择多项
SelectedItems            选中的项的集合
View                     指定以哪种视图显示

事件                        说明
MouseDoubleClick         鼠标双击事件

方法                        说明
Clear()                清除ListView中的所有项列

实际应用如下:

listview1.Items.Clear();//清空当前列表框
SqlConnection conn = **********;
conn.Open();///连接数据库
SqlCommand cmd = new SqlCommand("select * from tb_Room", conn);//数据库命令对象
sdr = cmd.ExecuteReader();//执行数据库命令,返回DataReader对象
while (sdr.Read())///将DataReader对象依次读取出来
{
    string zt = sdr["RoomZT"].ToString().Trim();
    
    AddItems(zt);//添加到列表框中的自定义函数
}
conn.Close();//关闭数据库连接

 

展开阅读全文

没有更多推荐了,返回首页