当前位置:网站首页>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;
程序允许结果为。第一个结果集***第二个结果集。
边栏推荐
猜你喜欢

【场景化解决方案】ERP系统与钉钉实现数据互通

Tencent cloud server is modified to root login to install pagoda panel

JVM进程诊断利器——Arthas

黑马2022最新redis课程笔记知识点(面试用)

法院3D导航系统-轻松实现室内实时定位导航

DeFi 项目中的治理Token

leetcode 32. 最长有效括号 (困难)

智慧图书馆的导航方案-定位导航导览-只用一个方案全部实现

QT program generates independent exe program (pit-avoiding version)

1. LVGL 8.3 在 Visual Studio 2019 模拟器中的环境搭建
随机推荐
ASEMI整流桥GBJ810参数,GBJ810封装,GBJ810重量
fastadmin图片上传方法改造
图像识别后将识别结果整理成列表,点击列表可跳转到搜索页面
jdbctemplate connects to sql server, the data found in the code is inconsistent with the database, how to solve it?
【场景化解决方案】OA审批与金智CRM数据同步
Three handshakes, four waves
大端小端存储区别一看即懂
Matlab, and nonlinear equations solving linear equations
ctfshow-web入门 文件上传篇部分题解
sizeof 结构体问题
Introduction to Network Layer Protocols
Where does detection go forward?
leetcode 35. 搜索插入位置(二分法+找性质也很关键)
【GNN】2022 G-Mixup: Graph Data Augmentation for Graph Classification
医院智能3D蓝牙导航导诊系统
【KD】2022 KDD Compressing Deep Graph Neural Networks via Adversarial Knowledge Distillation
Go语言技巧之正确高效使用slice(听课笔记总结--简单易懂)
[Vulnerability reproduction] CVE-2018-12613 (remote file inclusion)
VNCTF2021 部分题目复现
【场景化解决方案】构建设备通讯录,制造业设备上钉实现设备高效管理