当前位置:网站首页>ASP.net中的数据库应用
ASP.net中的数据库应用
2022-08-09 08:56:00 【l8487】
6.3Command与DataReader类
6.3.1查询数据库(Command类)两种方式创建Command对象
(1)使用Command的构造函数,如:
SqlCommand cmd=new sqlcommand("select * from Student",conn);
其中conn为connection对象,在Web.config中创建。
(2)使用Connection的CreatCommand()方法,如:
sqlcommand cmd=conn.CreatCommnad(); cmd.CommandText="Select * from Customers";
创建了Command对象以后可以使用一系列的Execute方法来执行命令语句。根据返回值不同,细分为ExecuteReader(),ExecuteScalar(),及ExecuteNonQuery。
1.ExecuteReader()方法,用法如:
String strConn=ConfirguratManager.ConnectionString["connectionString"].ConnectionString;
sqlconnection conn=new sqlconnection(strConn);
conn.Open();
sqlCommand cmd=new sqlcommand("Select * from Student",conn); //执行ExecuteReader()方法 sqlDataReader dr=cmd.ExecuteReader(); //将DataReader对象绑定到DataGrid控件 dgCust.DataSource=dr; dgCust.DataBind();
conn.Close; //关闭连接
2.ExecuteScallar()方法,返回单个值。
String strConn=ConfirguratManager.ConnectionString["connectionString"].ConnectionString; sqlconnection conn=new sqlconnection(strConn); conn.Open();
String s="Select top 1 age from Student Where name=王丽";
sqlCommand cmd=new sqlCommand(s,conn);
String d=(string)cmd.ExecuteScalar();
Message.Text=d.ToSting();
conn.Close;
3.ExecuteNonQuery()方法,用法如删除数据,更新数据
String strConn=ConfirguratManager.ConnectionString["connectionString"].ConnectionString; sqlconnection conn=new sqlconnection(strConn);
conn.Open();
String d="delete * from Student Where name=王丽";
String s="Selet * from Student";
Sqlcommand cmd=new sqlCommand(d,conn);
cmd.ExecuteNonQuery();//执行SQl语句,删除姓名为王丽的同学,该操作不返回任何值。
SqlCommand cmd=new SqlCommand(s,conn);
cmd.ExecuteReader();
6.3.2读取数据库查询结果(DataReader对象)
用Connection对象和Command对象从数据库连接并交互后,有两种方法来访问获取的结果。 (1)使用DataReader对象,用来逐行从数据源中获取数据并处理;节省内存可提高应用程序性能。减轻服务器对内存的需求。 (2)使用DataSet对象,用来将数据存到内存中进行处理; DataReader对象的创建可以概括为 String strConn=ConfirguratManager.ConnectionString["connectionString"].ConnectionString; sqlconnection conn=new sqlconnection(strConn);
conn.Open();
sqlcommand s="Select * from Student";
sqlDataReader dr=s.ExecuteReader();
DataReader对象创建以后,程序员就可以使用其Read方法从查询结果中获得一个结果集,一个结果集对应一行数据。(1)另外Read方法还会返回一个bool值,返回True表示仍有记录未读取,返回false表示已经到结果集的最好一条数据。(2)读取记录后,接下来的任务变为获取每个记录的某个字段,程序员可以字段名或者字段的引用来获取此记录中的某些字段。但DataReader提供了一种更为高效的查询字段的方法-Get方法。如下:
第一步,打开到数据库的连接,略;
String s="select * from Student";
sqlCommand cmd=new SqlCommand(s,conn);
sqlDataReader dr=cmd.ExecuteReader(); //通过DataReader的Read方法一次读取sql记录。
while (dr.Read())
{ Message.Text=Message.Text+"|"+dr.GetString(0); }
conn.Close; //关闭连接
有些数据提供者允许一个查询声明中包含多个命令(如SQL语句的存储过程)。以便产生多个结果集,对于多个结果集,可以调用DataReader对象的NextResult方法来获得下一个结果集。如果该方法的返回值为false,则表明已经到达最后一个结果集。如:
第一步,打开到数据库的连接,略;
String s1=”Select * from Student”;
String s2=”Select * from Customs”;
Sqlcommand cmd=new sqlcommand(s1+s2,conn);
SqlDataReader dr=cmd.ExecuteReader();
Do
{
While(dr.read())
{
Object[] cols=new object[2];
Int n=dr.GetValue(cols);
Message.Text=Message.Text+”/”+dr[0].ToString();
}
Message.Text=Message.Text+”***”;
}
While (dr.nextResule());
dr.Close;
conn.Close;
程序允许结果为。第一个结果集***第二个结果集。
边栏推荐
猜你喜欢

支付宝小程序使用自定义组件(原生)

Some of the topics in VNCTF2021 are reproduced

Kibana:为地图应用选择不同的语言 - Elastic Stack 8.3

医院智能3D蓝牙导航导诊系统

Introduction to Network Layer Protocols

bs4之爬取诗词学习

parse <compoN> error: Custom Component‘name should be form of my-component, not myComponent or MyCom

Failed to mount component: template or render function not defined.

网络层协议介绍

电子产品整机结构设计的一般性思路
随机推荐
这下你知道为什么程序员要和产品干架了吧?
黑马2022最新redis课程笔记知识点(面试用)
CPU主频 外频 芯片组 倍频 cache FSB PCI简介
nodeMCU(ESP8266)和RC522的接线图
长辈相亲
基于 JSch 实现服务的自定义监控解决方案
Literature retrieval operation code
基于蓝牙定位功能开发的医院智能导航系统
【愚公系列】2022年08月 Go教学课程 033-结构体方法重写、方法值、方法表达式
【场景化解决方案】搭建数据桥梁,Dslink打通泛微系统连接流
正则之re模块
QT程序生成独立exe程序(避坑版)
Three handshakes, four waves
ASEMI整流桥GBJ810参数,GBJ810封装,GBJ810重量
GBJ610-ASEMI超薄整流扁桥GBJ610
智慧图书馆的导航方案-定位导航导览-只用一个方案全部实现
nyoj306 走迷宫(搜索+二分)
gin清晰简化版curd接口例子
jdbctemplate connects to sql server, the data found in the code is inconsistent with the database, how to solve it?
Go语言技巧之正确高效使用slice(听课笔记总结--简单易懂)