使用ADO.NET访问、查询和操作数据库
ADO.ENT的主要组件
提供两个组件,用来访问和处理数据:.NET Framework 数据程序和DataSet(数据集)
.NET Framework:是专门为数据处理及快速地只进,只读访问数据而设计的组件。使用它可以连接数据源,执行命令和检索结果,直接对数据进行操作 。
DataSet:是专门为独立于任何数据源的数据访问而设计的。使用它,可以不必直接和数据源打交道,大批量地操作数据,也可以将数据绑定在控件上 。
.NET Framework 数据提供程序
.NET Framework 用于SQL Server的数据提供程序:提供对Microsoft SQL Server数据的访问。使用System.Data.SqlClient 命名空间
.NET Framework 用于OLE DB 的数据提供程序:提供对OLE DB 公开的数据源中数据的访问。使用System.Data.OleDb命名空间
.NET Framework 用于ODBC 的数据提供程序 :提供使用ODBC 公开的数据源中数据的访问。使用System.Data.Odbc命名空间
1.string sqlcon="Data Source=.;Initial Calalog=MySchool;User ID=sa;Pwd=.";
Connection:打开数据库连接
程序与数据库沟通的桥梁
SqlConnection con=new SqlConnection(sqlcon);
try
{
//可能发生异常的代码
con.Open();
}
catch(Exception ex)
{
//捕获异常
Console.WriteLine(ex);
}
finally
{
con.Close();
//永远都会被执行
}
Command:向数据库发送命令,提交SQL命令并从数据源中返回结果
string sql="select count(*) from Student where StudentNo='"+username+"' and LoginPwd='"+password+"'";
//向数据库发送一条SQL语句
SqlCommand command=new SqlCommand(sql,con);
//结果
int count=(int)command.ExecuteScalar();
if(count>0)
{
Console.WriteLine("登录成功");
}else
{
Console.WriteLine("没有此用户");
}
2.StringBuilder类: 用来定义可变字符串
StringBuilder sb = new StringBuilder("");
//追加字符串
sb.Append("World");
sb.Append("!");
//W2orld
sb.Insert(2, "2");
//原字符串:Wo2rld! 截取之后:W2rld!
sb.Remove(1, 2);
//ToString()
Console.WriteLine(sb.ToString());
查询学生记录数
//打开数据库连接
con.Open();
//使用StringBuilder追加SQL语句
StringBuilder sb = new StringBuilder();
sb.Append("select ");
sb.Append(" Count(*) ");
sb.Append(" from ");
sb.Append("[Student]");
Console.WriteLine(sb.ToString());
//创建一个SqlCommand对象
SqlCommand com = new SqlCommand(sb.ToString(),con);
Console.WriteLine((int)com.ExecuteScalar());
DataReader:从数据源中检索只读、只进的数据流,每次读取一行数据
StringBuilder sb = new StringBuilder();
sb.AppendLine("select");
sb.AppendLine("[StudentNo]");
sb.AppendLine(",[StudentName]");
sb.AppendLine("from");
sb.AppendLine("[Student]");
SqlCommand com = new SqlCommand(sb.ToString(), con);
//从数据源中检索只读、只进的数据流
return com.ExecuteReader();
SqlDataReader reader=GetStudentInfo();
while (reader.Read())
{
Console.WriteLine("{0}\t{1}",reader["StudentNo"],reader["StudentName"]);
}
reader.Close();
ExecuteNonQuery():
StringBuilder sb = new StringBuilder();
sb.AppendLine("Insert into");
sb.AppendLine("[Grade]([GradeName])");
sb.AppendLine("Values('" + gradeName + "')");
//3.创建一个SqlCommand
SqlCommand com = new SqlCommand(sb.ToString(),con);
//4.返回执行结果
return com.ExecuteNonQuery();
Student stu = new Student();
Console.WriteLine("请输入年级名称:");
string gradename = Console.ReadLine();
int count = stu.AddGrade(gradename);
if (count > 0)
{
Console.WriteLine("success!");
}
else
{
Console.WriteLine("success mother!");
}
使用ADO.NET访问、查询和操作数据库的更多相关文章
- 使用ADO.NET查询和操作数据库
String和StringBuilder 语法: //声明一个空的StringBuilder对象 StingBuilder对象名称 = new StringBuilder(); //声明一个Str ...
- ADO.NET查询和操作数据库
stringbuilder 类 stringbuilder类:用来定义可变字符串 stringbulider Append(string value) 在结尾追加 stringbuilder in ...
- 基础 ADO.NET 访问MYSQL 与 MSSQL 数据库例子
虽然实际开发时都是用 Entity 了,但是基础还是要掌握和复习的 ^^ //set connection string, server,database,username,password MySq ...
- SQL Server -- 回忆笔记(三):ADO.NET之C#操作数据库
SQL Server知识点回忆篇(三):ADO.NET之C#操作数据库 1.连接数据库 (1)创建连接字符串: 使用windows身份验证时的连接字符串: private string conStr= ...
- 用ADO操作数据库的方法步骤(ZT)
http://www.cppblog.com/changshoumeng/articles/113437.html 学习ADO时总结的一些经验 用ADO操作数据库的方法步骤 ADO接口简介 ADO库包 ...
- VC++下使用ADO操作数据库
VC++下使用ADO操作数据库主要要用到 _ConnectionPtr,_CommandPtr,_RecordsetPtr三个ADO对象指针,我查找了相关资料,发现网上源码很多,但是都相对凌乱,于是自 ...
- 摘:用ADO操作数据库的方法步骤
用ADO操作数据库的方法步骤 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口 ...
- 用ADO操作数据库的方法步骤
用ADO操作数据库的方法步骤 学习ADO时总结的一些经验 - 技术成就梦想 - 51CTO技术博客 http://freetoskey.blog.51cto.com/1355382/989218 ...
- ADO.net操作数据库
今天整理硬盘,发现2年前开始着手开始学习C#的学习日记.陆续整理,一是自己的知识梳理梳理,二是希望与大家多多交流,能给初学者带来一定帮助,当然是更高兴的啦. 断线对象 另一类是与数据源无关的断线对象, ...
随机推荐
- CC2 条理分明-----AACTP教你谈恋爱
AACTP是一个神奇的地方,这里可以培养你的自信,培养你的沟通表达能力,培养你的领导管理能力:但是你不知道的是AACTP还可以培养你恋爱的本领.想知道是怎么回事吗?听我给你慢慢说来.我把恋爱分为三 ...
- Python数据分析-Day2-Pandas模块
1.pandas简介 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标 ...
- 输出图片格式BARTENDER
try { BarTender.Application btApp = new BarTender.Application(); BarTe ...
- 2017-2018-2 20165327 实验四《Android程序设计》实验报告
2017-2018-2 20165327 实验四<Android程序设计>实验报告 任务一 Android Stuidio的安装测试: 任务要求 参考Android开发简易教程,安装 An ...
- android--------自定义控件 之 组合控件篇
上篇介绍了自定义控件的自定义属性篇,地址:http://www.cnblogs.com/zhangqie/p/8969163.html 这篇博文主要来说说 自定义控件的组合控件来提高布局的复用 使用自 ...
- node初学者笔记
helloworld 编辑一个js文件——在该文件所属目录打开命令行cmd——输入'node -v可查看版本——输入'node 00-hellowolrd.js(你的js名字)' 或者直接在文件所属 ...
- 2017.6.5项目总结(移动端touch事件)
event.stopPropagation() 该方法将停止事件的传播,阻止它被分派到其他Document节点.在时间传播的任何阶段都可以调用它,注意,虽然该方法不能阻止同一个Document节点上 ...
- pytorch学习记录
1.pytorch中的torch.split只能将tensor分割为相等的几分,如果需要特定的需求将tensor分割开,可以用torch.index_select.使用的时候,先生成index索引,示 ...
- 网络管理命令ping和arping
ping ping 向目标主机发送icmp请求包 常用来测试当前主机与目标主机网络连接状况 常见选项 -c 设置发包的个数 -s 设 ...
- Android实现选择题答题(包括单选、多选和答题卡)
在线答题demo,具体代码是一年多前完成的,比较简单,不再贴出,请参见Github. 主要功能: 单选:点击选项直接进入下一题.多选:选择多个选项,向右滑动进入下一题.答题卡:点击题号重新进入答题界面 ...