asp.net 3.5从入门到精通9-12(2)

2019-06-02 13:52

? Table_name是相关的表名称。

? column_list是列的集合,如果有多个列可用都好隔开。 ? VALUES是相应的列的值。

如果需要向表mytables插入数据,而mytables里包括自动增长的主键id和title两列,则INSERT语句可以编写为如下代码。

INSERT INTO mytables VALUES (?新的新闻标题?)

上述代码向表mytables中插入了一条新记录,并将title赋值为“新的新闻标题”。值得注意的是,在这条语句中,并没有编写列的集合,是因为当不编写column_list时,则默认为每一个列插入数值。

注意:自动增长的主键类型的字段,无需向数据中插入数值,因为SQL Server会自动为该列赋值。 如果需要当插入数据时,需要指定插入相应的列的值,则可以将SQL语句代码编写如下。

INSERT INTO mytables (title) VALUES (?新的新闻标题?)

上述代码指定了列title,并对应了相应的值。若在表中存在多个列,列的顺序和列相应的值的顺序必须匹配。例如有3列并分别为number1,string2,datetime3,当需要向其中插入数据时,则可以编写以下SQL语句。

INSERT INTO examtable (number1,string2,datetime3) VALUES (1,?this is a string?,?2008/9/18?)

上述代码编写了INSERT语句以便数据的插入,同样在插入语句中如果需要插入所有的列,可以简化INSERT语句以便快速进行数据插入,示例代码如下所示。

INSERT INTO examtable VALUES (1,?this is a string?,?2008/9/18?)

值得注意的是,无论按照何种方法编写SQL语句,值和列都应该相互匹配。

9.2.2 使用Command对象更新记录

编写了SQL语句后,必须执行SQL语句,在ADO.NET中,执行SQL语句有很多方法,其中推荐使用Command命令的ExecuteNonQuery()。执行SQL语句的命令的必要步骤如下所示。

? 打开数据连接。

? 创建一个新的Command对象。 ? 定义一个SQL命令。 ? 执行SQL命令。 ? 关闭连接。

从上面的步骤可以发现执行SQL语句是非常容易的,首先必须要打开到数据库的连接,示例代码如下所示。

string str = \ SqlConnection con = new SqlConnection(str); //创建连接对象 con.Open(); //打开连接

其中,str是数据连接字串,用来初始化Connection对象,说明如何连接数据库,当数据库连接完毕后,可以使用Open方法打开数据连接。完成数据库连接后,需创建一个新的Command对象,示例代码如下所示。

SqlCommand cmd = new SqlCommand(\插入一条新数据')\

Command对象的构造函数的参数有两个,一个是需要执行的SQL语句,令一个是数据库连接对象。创建Command对象后,就可以执行SQL命令,执行后完成并关闭数据连接,示例代码如下所示。

cmd.ExecuteNonQuery(); con.Close();

//执行SQL命令 //关闭连接

上述代码使用了ExecuteNonQuery()方法执行了SELECT语句的操作,当执行完毕后就需要对现有

248

的连接进行关闭,以释放系统资源。

9.2.3 使用DataSet数据集插入记录

使用INSERT语句能够完成数据插入,使用DataSet对象也可以完成数据插入。为了将数据库的数据填充到DataSet中,则必须先使用DataAdapter对象的方法实现填充,当数据填充完成后,开发人员可以将记录添加到DataSet对象中,然后使用Update方法将记录插入数据库中。使用DataSet更新记录的步骤如下所示:

? 创建一个Connection对象。 ? 创建一个DataAdapter对象。 ? 初始化适配器。

? 使用数据适配器的Fill方法执行SELECT命令,并填充DataSet。 ? 使用DataTable对象提供的NewRow方法创建新行。 ? 将数据行的字段设置为插入的值。

? 使用DataRowAdd类的Add方法将数据行添加到数据表中。

? 把DataAdapter类的InsertCommand属性设置成需要插入记录的INSERT语句。 ? 使用数据适配器提供的Update方法将新记录插入数据库。

? 使用DataSet类提供的AcceptChanges方法将数据库与内存中的数据保持一致。

当使用DataSet插入记录前,需要创建Connection对象以保证数据库连接,示例代码如下所示。

string str = \ SqlConnection con = new SqlConnection(str); con.Open();

//创建连接字串 //创建连接对象 //打开连接

上述代码创建了一个数据库连接,并打开了数据库连接。完成数据连接后,就需要查询表中的数据并使用DataAdapter对象初始化适配器,示例代码如下所示。

string strsql = \ SqlDataAdapter da = new SqlDataAdapter(strsql, con);

//编写SQL语句 //创建适配器

DataAdapter对象默认构造函数包括两个参数,其中一个参数是需要执行的SQL语句,另一个是Connection对象。在初始化适配器后,需要对适配器的相应的属性做设置,使用SqlCommandBuilder对象可以让系统构造InsertCommand属性,示例代码如下所示。

SqlCommandBuilder build = new SqlCommandBuilder(da); DataSet ds = new DataSet(); da.Fill(ds, \ DataTable tb = ds.Tables[\ tb.PrimaryKey = new DataColumn[] { tb.Columns[\

//构造SQL语句 //创建数据集 //填充数据集 //创建表

//创建表的主键

使用适配器的Fill方法能够填充DataSet数据集,示例代码如下所示。

上述代码创建了一个DataSet数据集对象,被填充数据后,数据集中表的名称被命名为datatable,该命名与数据库中的表的名称并不冲突。填充了DataSet数据对象后,需要使用DataRow对象为DataSet添加数据,示例代码如下所示。

DataRow row = ds.Tables[\ row[\使用DataSet插入新行\ row[\

//创建DataRow //赋值新列

上述代码使用了NewRow方法创建新行返回DataRow对象,当DataRow对象中的相应的元素被赋值后,则需要使用Rows.Add方法增加新行,因为只对DataRow对象赋值,并不能自动的在数据库中增加新行。示例代码如下所示。

249

ds.Tables[\

//添加新行

上述代码将数据更新到DataSet数据集中,为了保持数据集中的数据和数据库的数据的一致性,需使用Update方法,示例代码如下所示。

da.Update(ds, \

//更新数据

当执行了Update方法后,数据库中的数据就会同步DataSet数据集中的数据进行数据更新。

9.3 ASP.NET更新数据库

在应用程序的开发中,常常会需要对数据库中现有的内容进行更新操作。ADO.NET提供了若干不同的更新数据库中记录的方法,如果需要更新数据库中的某列的值或者某几列的值,则需要使用SQL UPDATE命令进行数据库更新。

9.3.1 SQL UPDATE数据更新语句

使用SQL UPDATE语句能够实现数据库中数据的更新,SQL UPDATE语句的一般语法格式如下所示。

UPDATE {table_name} {

SET column1_name=expression1, column2_name=expression2, . .

columnN_name=expressionN

{WHERE condition1 AND|OR condition2} }

上述代码规范了UPDATE语句的编写规范,其中: ? UPDATE是SQL更新关键字。

? table_name是需要更新的表的名称。 ? columnN_name是需要更新的列的名称。 ? expression是列相应的值。 ? WHERE是SQL语句关键字。 ? condition是条件。

如果需要更新表mytable中的某行的数据,则可以编写SQL UPDATE语句进行更新,示例代码如下所示。

UPDATE mytable SET title=?修改后的数据? where id=3

上述代码更新了id为3的数据中的title,并将title字段的值修改为“修改后的数据”。

9.3.2 使用Command对象更新记录

如需要执行UPDATE语句时,同样可以使用Command对象执行语句。Command对象基本上能够执行所有需要进行数据更新的SQL语句。使用Command对象进行数据库操作的步骤基本如下所示。

? 创建数据库连接。

250

? 创建一个Command对象,并指定一个SQL UPDATE(或存储过程)。

? 使用Command对象的ExecuteNonQuery()方法执行UPDATE(或存储过程)。 ? 关闭数据库连接。

当需要执行UPDATE语句时,首先必须要打开到数据库的连接,打开连接后,使用Command对象执行SQL语句,示例代码如下所示。

string str = \ SqlConnection con = new SqlConnection(str); //创建连接对象 con.Open(); //打开连接

其中,str同样是数据连接字串,用来初始化Connection对象,说明如何连接数据库,当数据库连接完毕后,可以使用Open方法打开数据连接。完成数据库连接后,需创建一个新的Command对象进行数据更新,示例代码如下所示。

SqlCommand cmd = new SqlCommand(\?修改后的数据? where id=3\ //创建Command对象

Command对象的构造函数的参数有两个,一个是需要执行的SQL语句,令一个是数据库连接对象。创建Command对象后,就可以执行SQL命令,执行后完成并关闭数据连接,示例代码如下所示。

cmd.ExecuteNonQuery(); con.Close();

//执行SQL命令 //关闭连接

上述代码使用了ExecuteNonQuery()方法进行SQL UPDATE语句的执行,从而能够更新数据库中的相应数据。

9.3.3 使用DataSet数据集更新记录

ADO.NET的DataSet对象提供了更好的编程实现数据库的更新功能。因为DataSet对象与数据库始终不是连接的,开发人员可以向脱离数据库的DataSet对象中增加列、删除列或更新列。当完成了修改后,则可以通过将DataSet对象连接到DataAdapter对象来将记录传输给数据库。DataSet更新记录的步骤如下所示。

? 创建一个Connection对象。 ? 创建一个DataAdapter对象。 ? 初始化适配器。

? 使用数据适配器的Fill方法执行SELECT命令,并填充DataSet。 ? 执行SqlCommandBuilder方法生成UpdataCommand方法。 ? 创建DataTable对象并指定相应的DataSet中的表。 ? 创建DataRow对象并查找需要修改的相应行。 ? 更改DataRow对象中的列的值。 ? 使用Update方法进行数据更新。

在更新记录前,首先需要查询出相应的数据,查询相应的数据后才能够填充DataSet,示例代码如下所示。

string str = \ SqlConnection con = new SqlConnection(str); con.Open(); string strsql = \ SqlDataAdapter da = new SqlDataAdapter(strsql, con); DataSet ds = new DataSet(); da.Fill(ds, \

//创建连接字串

//创建连接对象 //打开连接 //执行查询

//使用DataAdapter //使用DataSet

//使用Fill方法填充DataSet

251

上述代码将查询出来的数据集保存在表为datatable的DataSet记录集中,DataSet记录集的表的名称可以按照开发人员的喜好来编写,从而区分内存中表的数据和真实的数据库的区别。当需要处理数据时,只需要处理相应名称的表即可,示例代码如下所示。

DataTable tb = ds.Tables[\

当需要执行更新时,可直接使用DataSet对象进行更新操作来修改其中的一行或多行记录,示例代码如下所示。

DataTable tb = ds.Tables[\

tb.PrimaryKey = new DataColumn[] { tb.Columns[\ DataRow row = tb.Rows.Find(1); row[\新标题\

当需要更新某个记录时,必须在更新之前查找到该行的记录。可以使用Rows.Find方法查找到相应的行,然后将数据集表中的该行的列值进行更新。使用DataAdapter的Update方法可以更新DataSet数据集,并保持数据集和数据库中数据的一致性,示例代码如下所示。

da.Update(ds, \

在执行以上代码,可能会抛出异常“当传递具有已修改行的DataRow集合时,更新要求有效的UpdateCommand”。这是因为在更新时,并没有为DataAdapter对象配置UpdateCommand方法,可以通过SqlCommandBuilder对象配置UpdateCommand方法,示例代码如下所示。

SqlCommandBuilder build = new SqlCommandBuilder(da);

上述代码为DataAdapter对象自动配置了UpdateCommand,DeleteCommand等方法,当执行更新时,无需手动配置UpdateCommand方法。

9.4 ASP.NET删除数据

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

9.4.1 SQL DELETE数据删除语句

使用SQL DELETE语句能够实现数据库中数据的更新,SQL DELETE语句的一般语法格式如下所示。

DELETE [FROM] {table_name}

[WHERE condition1 AND|OR condition2]

上述代码规范了DELETE语句的编写规范,其中: ? DELETE是SQL删除关键字。 ? FORM是一个可以选择的关键字。 ? table_name是表的名称。

? WHERE是一个SQL关键字。

? conditionN是执行DELETE命令中需要达成的若干条件。

SQL DELETE相对来说比较简单,当需要对某个表中的数据进行删除时,可以使用DELETE语句来执行删除操作,在编写DELETE语句时,需要指定表,并且指定相应的条件,示例代码如下所示。

252


asp.net 3.5从入门到精通9-12(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:我国企业客户关系管理现状及对策

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: