ADO.NET | 使用Command对象操作数据库


零、友情链接


一、常用属性及说明

在使用connection对象链接到数据库之后,就可以使用Command对象对数据库进行增删改查了,操作实现的方式使用的是SQL语句。Command对象可以分为四个不同的执行命令对象,分别是:SqlCommandOledeCommandOdbcCommdOracleCommand,这几个对象的常用的属性以及方法几乎相同,但是最配套asp.net使用的是SqlCommand,下面是SqlCommand对象常用属性以及说明:

属性 说明
CommandType 获取或设置SqlCommand对象要执行命令的类型
CommandText 获取或设置要对数据源执行的SQL语句、存储过程或表名
CommandTimeOut 获取或设置在终止对执行命令的尝试并生成错误之前的等待时间
Connection 获取或设置SqlCommand对象所使用的Connection对象的名称
Parameters 获取SqlCommand对象需要使用的参数集合

常用方法:

方法 说明
ExecuteNonQuery 对连接执行的SQL语句并返回受执行的行数
ExecuteReader 对连接执行SQL语句并返回保持连接的数据读取器对象SqlDataReader
ExecuteScalar 执行查询,并返回查询结果集中的第1行的第1列的值

二、查询数据指令

通过查询语句或调用存储过程将数据库中的数据检索出来,通过指定的接收方法来得到这些数据。

查询的结果可能是一行一列,也可能是多行多列

例子:查询数据库中的数据

先来看一下效果,这个图片是从数据库中读取出来然后利用Response.write写在页面上的:
在这里插入图片描述
ok,开始写代码,首先打开安装好的SQL Server 2014 Management Studio,连接好之后,点击新建查询,输入以下SQL语句,创建一个表:

Create Database School
go
use School
go
create table Student
(
	ID int primary key identity(1,1),
	Name varchar(60),
	Sex char(2),
	Age int,
	Class varchar(60)
)

写完这些之后,表就创建好了,接着手动输入一些数据:
在这里插入图片描述
然后打开VS,创建一个WEB窗体,再新建一个Default.aspx作为首页,打开Default.aspx,cs开始写代码:

首先引用需要使用的命名空间:

using System.Data;
using System.Data.SqlClient;
using System.Data.Text;

页面加载Load方法

protected void Page_Load(object sender, EventArgs e)
{
	string Result = GetSqlData();
    Response.Write(Result);
}

定义GetSqlData方法,实现SqlCommand对象执行SQL查询命令并返回数据:

private string GetSqlData()
{
    StringBuilder res = new StringBuilder();
    res.Append("<table>");           //手动创建表格列表并将字符串追加到StringBuilder类
    //定义表格头部
    res.Append("<tr><th>序号</th><th>姓名</th><th>性别</th><th>年龄</th><th>班级</th></tr>");
    //使用using指令创建SqlConnection对象
    using(SqlConnection conn = new SqlConnection("Server=DESKTOP-9FCSCD4;DataBase=School;Trusted_Connection=SSPI"))
    {
        conn.Open();
        SqlCommand comm = new SqlCommand();     //实例化一个执行数据库操作的命令类
        comm.CommandType = CommandType.Text;   //指定要执行数据库操作的的命令是SQL语句
        comm.CommandText = "select * from Student";         //要查询的SQL语句
        comm.Connection = conn;     //指定需要的数据库连接类
        //执行数据库查询并返回SqlDataReader类型数据接收器
        using(SqlDataReader DataReader = comm.ExecuteReader())
        {
            //使用数据接收器执行数据行的循环读取
            while (DataReader.Read())
            {
                int ID = (int)DataReader["ID"];
                string Name = (string)DataReader["Name"];
                string Sex = (string)DataReader["Sex"];
                int Age = (int)DataReader["Age"];
                string Class = (string)DataReader["Class"];
                //开始连接
                res.Append("<tr><td>" + ID + "</td>");
                res.Append("<td>" + Name + "</td>");
                res.Append("<td>" + Sex + "</td>");
                res.Append("<td>" + Age + "</td>");
                res.Append("<td>" + Class + "</td></tr>");
            }
        }
        conn.Dispose();     //数据库释放
    }
    res.Append("</table>");
    return res.ToString();
}

在以上代码中,利用了StringBuilderAppend方法,在定义的串中,加入了HTML元素,直接在页面中生成表格,在打开页面之后,检查一下页面元素:
在这里插入图片描述
可以很清楚的看到,StringBuilder已经帮我们写入表格的元素了。,最后用CSS代码对表格进行一下美化:

<style type="text/css">
    /*设置表格、表头、单元格的边框及颜色和样式*/
    table,table th,table td{
        border:1px;
        border-style:solid;
        border-color:#22bbad;
    }
    /*重写表头的边框颜色*/
    table th{
        border-color:white;
    }
    /*将表格中的边框合并*/
    table{
        border-collapse:collapse;
    }
    /*设置表头的大小及颜色*/
    table th{
        width:150px;
        height:30px;
        text-align:center;
        background-color:#22bbad;
        color:white;
    }
    /*设置单元格的高度与文本位置*/
    table td{
        height:30px;
        text-align:center;
    }
</style>

大功告成!!!


三、添加数据指令

同样使用SqlCommand对象进行添加,添加记录不需要考虑选择用哪种方式接收。

未完待续……

发布了177 篇原创文章 · 获赞 282 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/lesileqin/article/details/103924621
今日推荐