一、谁来面对数据库

通过网页平台对数据库中的信息进行操作,首先要解决的问题就是如何让两者建立联系。也就是说怎样让ASP.NET与SQL Server数据库发生关联。
为了解决这个问题,ADO.NET应运而生。通过ADO.NET可以与各类数据源进行对话操作。
ADO.NET包含Connection、Command、DataReader、DataSet和DataAdapter对象。它们的作用分别如下。

对象 作用
Connection 提供与数据库的连接功能。
Command 用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。
DataReader 通过Command对象提供从数据库检索信息的功能。其特征为:只读的、向前的、快速的。
DataSet 是一个数据库容器,它存在于内存中,类似于翻译官,读取各类不同的数据源信息,然后提供一致的关系编程模型。
DataAdpter 提供连接DataSet对象和数据源的桥梁,它使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并确保DataSet中数据的更改与数据源保持一致。

二、怎样建立连接

需要操作数据库,首先要和数据建立连接。这项工作由Connection来完成。
Web.config中进行连接字符串的声明,其后就可以进行连接操作了。

Web.config:

<appSettings>
    <add key="ConnectionString" value="server=服务器名;database=数据库名;UId=用户名;password='用户密码'"/>
 </appSettings>

在cs页面中获取配置信息,并建立连接:

public SqlConnection GetConnection()
    {
        string myStr = ConfigurationManager.AppSettings["ConnectionString"].ToString();
        SqlConnection myConn = new SqlConnection(myStr);
        return myConn;
    }

此时,如需操作数据库,只需要对myConn进行操作即可。也可以理解为通过myConn取得了对数据库的操作权限。

三、怎样查询数据库

  1. 复习如何在数据库中建立数据表,定义表的结构,向表中添加信息。
  2. 构建查询网页,布局相应的控件。
  3. 设计查询过程。当用户在文本框中输入查询信息后,点击按钮,执行查询操作。
    (1)分析文本框中有无内容,没有信息不执行查询
    (2)打开数据库连接
    (3)加载查询语句
    (4)执行查询,将查询结果放置到DataSet中
    (5)分析DataSet中有无记录,有记录则显示记录,无记录,则显示提示信息
  4. 实现查询过程

         if (TextBox1.Text != "")
         {
             SqlConnection myConn = GetConnection();
             myConn.Open();
             string sqlStr = "select * from tb_student where name=@Name";
             SqlCommand myCmd = new SqlCommand(sqlStr, myConn);
             myCmd.Parameters.Add("@Name", SqlDbType.VarChar, 20).Value = TextBox1.Text.Trim();
             SqlDataAdapter myDa = new SqlDataAdapter(myCmd);
             DataSet myDs = new DataSet();
             myDa.Fill(myDs);
             if (myDs.Tables[0].Rows.Count > 0)
             {
                 GridView1.DataSource = myDs;
                 GridView1.DataBind();
             }
             else
             {
                 Response.Write("<script>alert('没有相关记录')</script>");
             }
             myDa.Dispose();
             myDs.Dispose();
             myConn.Dispose();
    
         }
         else
         {
             Page.DataBind();
         }
    

    注:使用SqlDbType时,需要使用using System.Data;

四、怎样添加数据

结合第三部分的内容分析,对数据库添加数据,关键在于插入语句的写法。
SQL插入语句的语法是:

Insert into 数据表 (字段名) values (‘值’)

该例中,显示数据表信息的过程,其实就是查询数据表的过程,与第三部分类似,可将其作为一个方法进行调用。
进一步归纳——
数据库的操作,其流程为:

SqlConnection myConn = GetConnection();  //建立连接
myConn.Open(); //打开连接
string sqlStr = ""; //设置操作语句
SqlCommand myCmd = new SqlCommand(sqlStr, myConn);  //声明执行命令
……
myConn.Close();  //关闭连接

五、怎样修改数据

修改数据其实就是更新数据,与SQL语句对应的就是update,即将需要更新的记录号提取出来,将需要更新的字段确定下来,并获得更新内容,然后进行更新操作。

基本思路是:

  1. 加载数据信息,并设置修改字段。
  2. 获取用户点击记录的记录号。
  3. 提供更新数据的输入框。
  4. 获得更新内容,进行更新。

注意点:

  1. 在加载信息时,使用GridView1.DataKeyNames = new string[]{"id"};来绑定主键字段。
  2. 使用Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString()) 来获取绑定字段的键值。
  3. 使用((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString() 来获取修改框中的值。

六、怎样删除数据

删除数据使用的是SQL语句中的delete语句。只要将需删除记录的记录号获得即可。
获得记录号的方式参照第五部分。这里的重点是如何加入一个删除确认对话框。

((LinkButton)e.Row.Cells[0].Controls[2]).Attributes.Add("onclick", "return confirm('确定删除吗?')");

这句话的意思是,给记录所在行的第一列中的第三个控件加上一个onclick的属性。

七、使用Command对象调用存储过程

什么是存储过程?

储存程序 (Stored Procedure),又可称预储程序或者存储过程,是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象,它可以视为数据库中的一种函数或子程序。

存储过程如何定义?

  1. 启动SQL Server Management Studio
  2. 在相应的数据库中选择“可编程性”——“存储过程”
  3. 在“存储过程”上右击,选择“新建存储过程”
  4. 在相应窗口中输入存储过程代码
  5. 点击“执行”,完成存储过程的建立

存储过程如何应用?`

SqlCommand myCmd = new SqlCommand("InsertClass",myConn);
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Parameters.Add("@ClassName",SqlDbType.VarChar,50).Value=TextBox1.Text.Trim();

八、使用Command对象实现数据库的事务处理

什么是事务?

事务是一组由相关任务组成的单元,该单元中的任务要么全部成功,要么全部失败。事务最终执行的结果只能是两种状态,即提交或终止。
事务中的“回滚”概念的理解,对于在事务中已经执行的内容,如果由于后续执行失败,则要将已经执行过的进行撤回。

事务的使用方法

  1. 调用SqlConnection对象的BeginTransaction方法创建一个Transaction对象
    SqlTransaction sqlTrans = myConn.BeginTransaction();
  2. 在try中以sqlTrans.Commit提交事务
  3. 在catch中以sqlTrans.Rollback来回滚事务
文档更新时间: 2018-11-20 22:13   作者:大麦