622使用Command对象进行数据操作.docx

上传人:b****3 文档编号:10654936 上传时间:2023-05-27 格式:DOCX 页数:13 大小:221.11KB
下载 相关 举报
622使用Command对象进行数据操作.docx_第1页
第1页 / 共13页
622使用Command对象进行数据操作.docx_第2页
第2页 / 共13页
622使用Command对象进行数据操作.docx_第3页
第3页 / 共13页
622使用Command对象进行数据操作.docx_第4页
第4页 / 共13页
622使用Command对象进行数据操作.docx_第5页
第5页 / 共13页
622使用Command对象进行数据操作.docx_第6页
第6页 / 共13页
622使用Command对象进行数据操作.docx_第7页
第7页 / 共13页
622使用Command对象进行数据操作.docx_第8页
第8页 / 共13页
622使用Command对象进行数据操作.docx_第9页
第9页 / 共13页
622使用Command对象进行数据操作.docx_第10页
第10页 / 共13页
622使用Command对象进行数据操作.docx_第11页
第11页 / 共13页
622使用Command对象进行数据操作.docx_第12页
第12页 / 共13页
622使用Command对象进行数据操作.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

622使用Command对象进行数据操作.docx

《622使用Command对象进行数据操作.docx》由会员分享,可在线阅读,更多相关《622使用Command对象进行数据操作.docx(13页珍藏版)》请在冰点文库上搜索。

622使用Command对象进行数据操作.docx

622使用Command对象进行数据操作

6.2.2使用Command对象进行数据操作

Command对象简介

Command对象是在Connection对象连接数据库之后,对数据库执行查询、添加、删除和修改等各种操作时使用。

操作实现的方式可以使用SQL语句,也可以使用存储过程。

根据所用的.NETFramework数据提供程

序的不同,Command对象也可以分成4种,分别是SqlCommand、OleDbComman、dOdbcCommand和OracleCommand,根据本书编排下面我们着重介绍一下SqlCommand。

SqlCommand对象常用属性

SqlCommand对象常用属性如下:

属性

说明

CommandText

获取或设置要执行的语句或存储过程

CommandType

获取或设置一个值,该值指示如何解释CommandText属性

Connection

获取或设置命令使用的连接对象。

默认为空

CommandTimeout

获取或设置试图执行命令时要等待的时间(以秒为单位)默认为

30秒

Parameters

获得与该命令关联的参数集合

表6.3SqlCommand对象常用属性

SqlCommand对象的常用属性详解:

•CommandType属性

获取或设置Command对象要执行命令的类型。

语法:

publicoverrideCommandTypeCommandType{get;set;}

属性值:

CommandType值之一,默认为Text。

当将CommandType设置为StoredProcedure时,应将CommandText属性设置为存储过程的名称。

当调用Execute方法之一时,该命令将执行此存储过程。

•CommandText属性

获取或设置要对数据源执行的程。

Transact-SQL语句或存储过程。

通过Command对象执行SQL语句或存储过

语法:

publicoverridestringCommandText{get;set;}

SqlCommand对象常用方法

SqlCommand对象常用方法如下:

方法

说明

ExecuteNonQuery

执行SQL语句并返回受影响的行数

ExecuteScalar

执行查询,并返回查询所返回的结果集中第一行的第一列,忽略其他列或行

ExecuteReader

执行返回数据集的SELECT语句

表6.4SqlCommand对象常用方法

SqlCommand对象常用方法详解:

ExecuteNonQuery方法

ExecuteNonQuery方法执行诸如UPDATE、INSERT和DELETE语句有关的更新操作,在这些情况下,返回值是命令影响的行数。

对于其他类型的语句,诸如SET或CREATE语句,则

返回值为-1;如果发生回滚,返回值也为-1。

语法:

publicoverrideObjectExecuteNonQuery(

例如,创建一个SqlCommand,然后使用ExecuteNonQuery方法执行(queryString代表Transact-SQL语句如,UPDATE、INSERT或DELETE),代码如下:

privatestaticvoidCreateCommand(stringqueryString,stringconnectionString

{

SqlConnectionconnection=newSqlConnection(connectionString

SqlCommandcommand=newSqlCommand(queryString,connection;

command.Connection.Open(;

command.ExecuteNonQuery(;//执行Command命令

ExecuteReader方法

ExecuteReader方法通常与查询命令一起使用,并且返回一个数据阅读器对象

SqlDataReader类的一个实例。

数据阅读器是一种只读的、向前移动的游标,客户端代码滚动游标并从中读取数据(下节将具体介绍数据阅读器)。

如果通过ExecuteReader方法执行一个

更新语句,则该命令成功地执行,但是不会返回任何受影响的数据行。

例如,创建一个SqlCommand,然后应用ExecuteReader(方法来创建DataReader对象来对数据源进行读取,代码如下:

SqlCommandcommand=newSqlCommand(queryString,connection;

//通过ExecuteReader方法创建DataReader对象

SqlDataReaderreader=command.ExecuteReader(;

while(reader.Read(

{

ConSQLe.WriteLine(String.Format("{0}",reader[0];

}

•ExecuteScalar方法

执行查询,并返回查询所返回的结果集中第一行的第一列

语法:

publicoverrideObjectExecuteScalar(

如果只想检索数据库信息中的一个值,而不需要返回表或数据流形式的数据库信息。

例如,只需要返回COUNT(*、SUM(grade或AVG(grade等聚合函数的结果,那么Command对象的ExecuteScalar方法就很有用。

如果在一个常规查询语句当中调用该方法,则只读取第一行第一列的值,而丢弃所有其他值。

例如,使用SqlCommand对象的ExecuteScalar方法来返回表中记录的数目(SELECT语句使用Transact-SQLCOUNT聚合函数返回指定表中的行数的单个值),代码如下:

stringsqlstr="SELECTCount(*FROMtbStudent";

SqlComandstudentCMD=newSqlCommand(sqlstr,connection;

//将返回的记录数目强制转换成整型

Int32count=(Int32studentCMD.ExecuteScalar(;

SqlCommand对象的应用

示例6.2使用Command对象查询数据(源程序详见光盘中例6.2

本示例主要讲解在ASP.NET应用程序中如何使用SqlCommand对象查询数据库中的记录。

执行程序,在“姓名”文本框中输入“张三”,并单击“查询”控件,将会在界面上显示查询结果,如图所示:

图6.1使用Command对象查询数据

程序实现的步骤:

(1、新建一个网站,默认主页为Default.aspx。

(2、打开Default.aspx文件,在Default.aspx界面上添加一个TextBox控件和一个Button控件分别命名为txtName和btnSelect,并将Button的Text属性设为“查询”,然后再添加一个Gridiew控件命名为gvStudent.

(3、在Web.Config文件中配置数据库连接字符串,在下的子配置节添加连接字符串。

其代码如下:

providerName="System.Data.SqlClient"

connectionString="server=.;database=dbChooseCourse;uid=ChooseCourse;pwd=ChooseCourse"name="sqlconn"/>

(4、在Default.aspx页中,使用ConfigurationManager类获取配置节的连接字符串。

其代码如下:

//自定义数据库连接函数

publicSqlConnectionGetConnection(

{

//获取Web.Config文件中的连接字符串

StringmyStr=System.Configuration.ConfigurationManager.

ConnectionStrings["sqlconn"].ToString(;

SqlConnectionmyConn=newSqlConnection(myStr;

returnmyConn;

}

(5、在【查询】按钮的Click事件下,使用Command对象查询数据库中的记录,调用GetConnection(函数进行数据库连接,并调用BindStudent(函数进行数据的绑定。

其代码如下:

protectedvoidbtnSelect_Click(objectsender,EventArgse

BindStudent(;//调用数据绑定函数

}

//自定义数据绑定函数

protectedvoidBindStudent(

{

SqlConnectionmyConn=GetConnection(;

myConn.Open(;

stringname=txtName.Text.ToString(.Trim(;//获取文本框的内容即学生姓名

stringsqlStr="select*fromtbStudentwheresname='"+name+"'";//SQL查询语句SqlCommandmyCmd=newSqlCommand(sqlStr,myConn;/创/建Command对象SqlDataAdaptermyDa=newSqlDataAdapter(myCmd;

DataSetmyDs=newDataSet(;

myDa.Fill(myDs;

if(myDs.Tables[0].Rows.Count>0

{

gvStudent.DataSource=myDs;

gvStudent.DataBind(;

}

else

{

Response.Write("";

}

myDa.Dispose(;

myDs.Dispose(;

myConn.Close(;

}

实例6.3使用Command对象添加数据(源程序详见光盘中例6.3

本示例主要讲解在ASP.NET应用程序中如何使用SqlCommand对象如何向数据库中添加数据。

执行程序,示例运行结果,如图6.2所示;在文本框中,输入学生的正确信息,单击【添加学生信息】按钮,将学生信息提交到数据库中,运行结果如图6.3所示:

 

图6.2示例运行结果图图6.3添加记录后的结果图

程序实现的步骤:

(1)、创建一个新的网站,默认主页为Default.aspx;在Default.aspx页面中分别添加5个TextBooks控件,分别命名为:

txtSno,txtSname,txtClass,txtSdept,txtPwd,分别用来填写学号、姓名、班级、系别、密码,其中txtPwd控件的

TextMode属性设为Password;然后在表格中的性别一栏添加两个RadioButton控件分别命名为radMan和radWoman,将这两个控件的GroupName设为radSex,接着将radMan的Text属性设为“男”,radWoman的Text属性设为“女”,radMan的Checked属性设为True。

继续添加一个Button控件,命名为:

btnAdd;和一个GridView控件,命名为:

gvStudent。

(2)、在【添加】按钮的Click事件下,使用Command对象将文本框中的值添加到数据库中,并将其显示出来。

其代码如下:

protectedvoidbtnAdd_Click(objectsender,EventArgse{

SqlConnectionmyConn=GetConnection(;stringssex;

if(radMan.Checked

{

ssex="男";

}

else

{

ssex="女";

try

{

stringsqlStr="insertintotbStudent(sno,sname,ssex,sclass,sdept,spwdvalues('"

+txtSno.Text.ToString(.Trim(+"','"

z+txtSname.Text.ToString(.Trim(+"','"+ssex++txtClass.Text.ToString(.Trim(+"','"

+txtSdept.Text.ToString(.Trim(+"','"

+txtPwd.Text.ToString(.Trim(+"'";//SQL插入语句

SqlCommandmyCmd=newSqlCommand(sqlStr,myConn;myConn.Open(;

myCmd.ExecuteNonQuery(;//使用SqlCommand对象插于BindStudent(;

}

catch

{

Response.Write("添加失败!

";

}finally

{

myConn.Close(;

}

}

实例6.4使用Command对象修改数据(源程序详见光盘中例6.4

本示例主要讲解在ASP.NET应用程序中如何使用SqlCommand对象如何修改数据库中的数据。

执行程序,示例运行结果,如图6.4所示;在文本框中,输入需要修改学生的正确信息,单击【保存】按钮,修改数据库中原有的信息,运行结果如图6.5所示:

程序实现的步骤:

(1)、创建一个新的网站,默认主页为Default.aspx;在Default.aspx页面中分别添加5个TextBooks控件,分别命名为:

txtSno,txtSname,txtClass,txtSdept分别用来填写学号、姓名、班级、系别;然后在表格中的性别一栏的单元格中添加两个RadioButton控件分别命名为radMan和radWoman,将这两个控件的GroupName设为radSex,接着将radMan的Text属性设为“男”,radWoman的Text属性设为

“女”,radMan的Checked属性设为True。

继续添加两个个Button控件,命名为:

btnSave,btnReturn;和一个Gridview控件,命名为:

gvStudent。

(2)、在【保存】按钮的Click事件下,使用Command对象将文本框中的值替换数据库中以后的值,并将其显示出来。

其代码如下:

protectedvoidbtnSave_Click(objectsender,EventArgse

{

SqlConnectionmyConn=GetConnection(;

stringsno=txtSno.Text.ToString(.Trim(;

stringsname=txtSname.Text.ToString(.Trim(;

stringssex;

if(radMan.Checked

{

ssex="男";

}

else

{

ssex="女";

}

stringsclass=txtSclass.Text.ToString(.Trim(;

stringsdept=txtSdept.Text.ToString(.Trim(;

try

{

stringsqlStr="updatetbStudentsetsname='"

+sname+"',ssex='"

+ssex+"',sclass='"+sclass+"',sdept='"

+sdept+"'wheresno='"+sno+"'";

SqlCommandmyCmd=newSqlCommand(sqlStr,myConn;myConn.Open(;

myCmd.ExecuteNonQuery(;

BindStudent(;

}

catch

{

Response.Write("修改失败";

}

finally

{myConn.Close(;

}

实例6.5使用Command对象删除数据(源程序详见光盘中例6.5)

本示例主要讲解在ASP.NET应用程序中如何使用SqlCommand对象如何删除数据库中的数据。

执行程序,示例运行结果,如图6.6所示;单击学号为082201的【删除】按钮,运行结果如图6.7所示:

图6.6示例运行结果图图6.7删除记录后的结果图

程序实现的步骤:

(1)、创建一个新的网站,默认主页为Default.aspx;在Default.aspx页面中添加一个Gridview控件,命名为:

gvStudent。

(2)、单击GridView控件右上方的控件,在弹出的快捷菜单中选择“编辑列”选项,如图6.8所示。

图6.8选择“编辑列”选项图6.9“字段”对话框

(3)、在“字段”对话框中选中一个“TemplateField,”并将其HeaderText命名为“操作”,如图6.9所示。

(4)、在“编辑模板”对话框中,添加一个Button控件,将其命名为“btnDel,”用

CommandArgument属性绑定sno,用CommandName命名为“del,”如图6.10所示gvStudent具体代码如下:

CommandArgument='<%#Eval("sno"%>'CommandName="del"/>

图6.10“编辑模板”对话框

(4)、在【删除】按钮的Click事件下,使用Command对象更新数据库中的值,并将其显示出来。

其代码如下:

protectedvoidgvStudent_RowCommand(objectsender,GridViewCommandEventArgse{

if(e.CommandName.ToString(.Trim(=="del"//判断CommandName是否为“del”

{

SqlConnectionmyConn=GetConnection(;myConn.Open(;

stringsno=e.CommandArgument.ToString(.Trim(;

stringsqlStr="deletefromtbStudentwheresno='"+sno+"'";

//删除指定学生的SQl语句

SqlCommandmyCmd=newSqlCommand(sqlStr,myConn;myCmd.ExecuteNonQuery(;

myConn.Close(;

BindStudent(;//重新绑定学生数据

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2