9.4 ASP.NET删除数据

  当数据库中的数据过多,或需要对数据库进行数据优化时,则可能需要对数据库中的数据进行删除,例如用户的操作,长期不上线的用户资料,都可以删除。ADO.NET提供多种数据库的删除方法,并且同样支持DataSet方法删除数据库。

9.4.1 SQL DELETE数据删除语句
  使用SQL DELETE语句能够实现数据库中数据的更新,SQL DELETE语句的一般语法格式如下所示。
+展开
-SQL
DELETE [FROM]
{table_name}
[WHERE condition1 AND|OR condition2]

上述代码规范了DELETE语句的编写规范,其中:
1)DELETE是SQL删除关键字。
2)FORM是一个可以选择的关键字。
3)table_name是表的名称。
4)WHERE是一个SQL关键字。
5)conditionN是执行DELETE命令中需要达成的若干条件。
  SQL DELETE相对来说比较简单,当需要对某个表中的数据进行删除时,可以使用DELETE语句来执行删除操作,在编写DELETE语句时,需要指定表,并且指定相应的条件,示例代码如下所示。
+展开
-SQL
DELETE FROM mynews WHERE ID=3

  上述代码指定删除了mynews表中ID为3的行。如果不编写WHERE子句,则该表中所有的行都能够达成删除的条件,则会删除表中所有的行,示例代码如下所示。
+展开
-SQL
DELETE FROM mynews

在编写删除语句时,可以通过编写相应的条件来提高执行的效率。

9.4.2 使用Command对象删除记录
  当需要执行删除语句,可以使用Command对象来删除数据库中的记录。Command对象的使用方法在前面的SQL语句介绍中已经讲的比较多了,在删除记录时,其使用方法基本相同。使用Command对象进行数据库操作的步骤基本如下所示。
1)创建数据库连接。
2)创建一个Command对象,并指定一个SQL DELETE(或存储过程)。
3)使用Command对象的ExecuteNonQuery()方法执行DELETE(或存储过程)。
4)关闭数据库连接。
  当需要执行DELETE语句时,首先必须要打开到数据库的连接,打开连接后,使用Command对象执行SQL语句,示例代码如下所示。
+展开
-C#
            string str = "server='(local)';database='mytable';uid='sa';pwd='sa'";
            SqlConnection con = new SqlConnection(str);
            con.Open();//打开连接

  完成数据库连接后,需创建一个新的Command对象,示例代码如下所示。
+展开
-C#
            SqlCommand cmd = new SqlCommand("Delete mynews where id=3", con);

  Command对象的构造函数的参数有两个,一个是需要执行的SQL语句,令一个是数据库连接对象。
创建Command对象后,就可以执行SQL命令,执行后完成并关闭数据连接,示例代码如下所示。
+展开
-C#
            cmd.ExecuteNonQuery();//执行SQL命令
            con.Close();//关闭连接


9.4.3 使用DataSet数据集删除记录
使用DataSet删除记录和使用DataSet更新记录非常的相似,DataSet删除记录的步骤如下所示。
1)创建一个Connection对象。
2)创建一个DataAdapter对象。
3)初始化适配器。
4)使用数据适配器的Fill方法执行SELECT命令,并填充DataSet。
5)执行SqlCommandBuilder方法生成UpdataCommand方法。
6)创建DataTable对象并指定相应的DataSet中的表。
7)创建DataRow对象并查找需要修改的相应行。
8)使用Delete方法删除该行。
9)使用Updata方法进行数据更新。
  在删除记录前,首先需要创建连接,示例代码如下所示。
+展开
-C#
           string str = "server='(local)';database='mytable';uid='sa';pwd='sa'";
            SqlConnection con = new SqlConnection(str);
            con.Open();
            string strsql = "select * from mynews";

  上述代码创建了与数据库的连接,并编写SQL查询语句来填充DataSet。填充DataSet对象需使用DataAdapter,示例代码如下所示。
+展开
-C#
            SqlDataAdapter da = new SqlDataAdapter(strsql, con);
            SqlCommandBuilder build = new SqlCommandBuilder(da);
            DataSet ds = new DataSet();
            da.Fill(ds, "datatable");

  编写完成后,需要创建DataTable对象对DataSet中相应的数据进行操作,其代码和更新记录基本相同,示例代码如下所示。
+展开
-C#
            DataTable tb = ds.Tables["datatable"];
            tb.PrimaryKey = new DataColumn[] { tb.Columns["id"] };
            DataRow row = tb.Rows.Find(3);

  在进行删除之前,同样需要找到相应的行,来指定删除语句所需要删除的行,示例代码如下所示。
+展开
-C#
            row.Delete();

  读者可以看到,DataSet删除方法与更新方法不同的地方只操作语句的不同,在更新中使用的是Update()方法,而在删除中使用的是Delete()方法。
注意:当使用Delete方法删除记录行的时候,可以通过调用DataRow对象的RejectChanges方法取消对记录的删除,当使用该方法删除记录行时,该行的状态会恢复为Unchanged。
在删除完毕后,同样需要保持DataSet中的数据和数据库中的数据的一致性,示例代码如下所示。
+展开
-C#
da.Update(ds, "datatable");

  使用Update方法能够使DataSet中的数据和数据库中的数据保持一致性,在ASP中,这种方法也比较常见。

加支付宝好友偷能量挖...


评论(0)网络
阅读(138)喜欢(0)Asp.Net/C#/WCF