.net数据库操作
刚接触到数据库时总是被数据库中的一些基本概念,比如Connection、Command、DataReader等,给整的糊里糊涂。如今,对数据库的基本操作有了一定的认识,特此做出总结,以便后续工作中查阅。
Microsoft公司提供了几种常见的数据源操作:Sql server数据库,OLEDB数据源,ODBC数据源,Oracle数据库,而针对它们的一些常规操作可以说是大同小异,本文借以对Sql server数据库的操作进行Connection、Command、DataSet、DataAdapter、DataReader的介绍。
SqlConnection:
Sqlconnection是对象用来连接sql server数据库的,程序员对数据库的一切操作都是建立在数据库已经连通的基础上,因此对它有必要做一些基本的了解。
SqlConnection的基本语法是(拿一个连接的语句):Data Source=192.168.100.46;Initial Catalog=database;User ID=sa;Password=sa
而在实际的操作过程中经常把它放到配置文件中,以便后续进行更改,当然也可以把其基本项放到前台界面填写操作。
放在配置文件中,参考代码:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="ConnectionString" value="Data Source=192.168.100.46;Initial Catalog=database;User ID=sa;Password=sa"/>
</appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
SqlCommand:
在对象和数据库建立连接后,可以使用Command对象对数据库进行增、删、改、查等基本操作,操作实现方式可以是使用sql语句进行,也可以是使用存储过程。下面简单介绍Command对象的常用属性及其方法。
常用属性:
CommandType:获取或设置Command对象要执行命令的类型
CommandText:获取或设置要对数据源执行的SQL语句、存储过程或表名
CommandTimeOut:获取或设置在终止对执行命令的尝试并生成错误之前的等待时间
Connection:获取或设置此Command对象使用的Connection对象的名称
Parameters:获取Command对象要使用的参数集合。
常用方法:
ExecuteNonQuery:执行sql语句并返回受影响的行数
ExecuteReader:执行返回数据集的select语句
ExecuteScalar:执行查询,并返回查询所返回的结果集中第一行第一列
一句话:SqlCommand是需要对数据库做出改变或调整时使用的,使用后(除查询)数据库会有变化。
DataSet:
DataSet是数据库操作过程中的核心对象,支持断开式、分布式数据方案的核心对象。DataSet对象是创建在内存中的集合对象,它可以包含任意数量的数据表,以及所有的表的约束、索引、和关系,就相当于一个小型关系的数据库。而一个dataset对象包含一组DataTable对象,这些对象可以与数据相关联,其中每个dataTable对象都是由DataColumn和DataRow对象组成的。
对DataSet的常见操作:
以编程方式在DataSet中创建dataTable、DataRelation、Constraint,并使用数据填充表
通过DataAdapter填充dataSet
使用XML加载和保持DataSet内容
一句话:DataSet是一个保存数据的小型数据库,支持断开数据库连接后的操作。
DataAdapter:
DataAdapter对象是DataSet对象和数据源之间联系的桥梁,主要是从数据源中检索数据、填充DataSet对象中的表或者把用户对DataSet做出的更改写入到数据库中。
常用属性:
selectCommand:获取或设置用于在数据源中选择记录的命令
InsertCommand:获取或设置用于将新的记录插入到数据库中命令
UpdateCommand:获取或设置用于更新数据源中记录的命令
DeleteCommand:获取或设置用于从数据集中删除记录的命令
常用方法:
Fill:从数据源中提取数据以填充数据集
Update:更新数据源
一句话:DataAdapter对用于连接dataSet和数据源的。
DataReader:
DataReader是一个简单的数据集,用于从数据源中检索只读数据集,常用于检索大量数据。DataReader每次读取数据时只在内存中保留一行记录,开销非常小。
可以从Command对象的ExecuteReader方法从数据源中检索数据来创建DataReader对象。如:SqlDataReader sdr = cmd.ExecuteReader()
常用方法:
FieldCount:获取当前行的列数
RecordsAffectde:获取执行SQL语句所更改、添加或删除的行数
常用方法:
Read:使用DataReader对象前进到下一条记录
Close:关闭DataReader对象
Get:用来读取数据集的当前行的某一列记录
一句话:DataReader每次读取数据源时在内存中保留一行记录。
综合运用:
在实际项目开发中使用三层架构操作数据库,而最底层直接操作数据库会将上述所讲的一些基本概念综合运用,这里选择最常用到的两个方法以供参考:
connectionString:数据库连接语句
SQLString:sql语句
public static DataSet Query(string strSql)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
DataSet ds = new DataSet(); try
{
conn.Open();
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(strSql, conn);
sqlDataAdapter.Fill(ds, "ds");
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
} return ds;
}
}
public static int ExecuteSql(string strSql)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(strSql, conn))
{
try
{
conn.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (SqlException ex)
{
conn.Close();
throw new Exception(ex.Message);
}
}
}
}
.net数据库操作的更多相关文章
- 如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...
- 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~
最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...
- MySQL 系列(二) 你不知道的数据库操作
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...
- ABP创建数据库操作步骤
1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- django数据库操作和中间件
数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...
- [Android Pro] 完美Android Cursor使用例子(Android数据库操作)
reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...
- phpcms v9 中的数据库操作函数
1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') 返回 ...
- Android打造属于自己的数据库操作类。
1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...
- python之数据库操作
数据库操作 Python 操作 Mysql 模块的安装 1 2 3 4 5 linux: yum install MySQL-python window: http://files ...
随机推荐
- web 前端常用组件【04】Datetimepicker 和 Lodop
web项目中日期选择器和打印这两个功能是非常常见,将使用过的日期和打印控件,在这里总结归纳,为方便后面使用. 1.Datetimepicker a.官方API:http://www.bootcss.c ...
- SELECT (Transact-SQL)
从数据库中检索行,并允许从 SQL Server 中的一个或多个表中选择一个或多个行或列. 虽然 SELECT 语句的完整语法较复杂,但其主要子句可归纳如下: [ WITH <common_t ...
- 每一个C#开发者必须知道的13件事情
1.开发流程 程序的Bug与瑕疵往往出现于开发流程当中.只要对工具善加利用,就有助于在你发布程序之前便将问题发现,或避开这些问题. 标准化代码书写 标准化代码书写可以使代码更加易于维护,尤其是在代码由 ...
- ASP.NET网站入侵第二波(LeaRun.信息化快速开发框架 已被笔者拿下)
笔者小学文化,语言组织能力差,写的不通的地方请大家将就着看,不喜勿喷. 上篇我讲了如何在上传文件中入侵服务器,這次我们稍微多讲一点. 还是先讲下流程: 1.上传代码页面 我上传的是ashx页面. 2 ...
- WEB API 中HTTP的get、post、put,delete 请求方式
一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创 ...
- matlab中的卷积——filter,conv之间的区别
%Matlab提供了计算线性卷积和两个多项式相乘的函数conv,语法格式w=conv(u,v),其中u和v分别是有限长度序列向量,w是u和v的卷积结果序列向量. %如果向量u和v的长度分别为N和M,则 ...
- MVC中使用Ajax提交数据 Jquery Ajax方法传值到action
Jquery Ajax方法传值到action <script type="text/javascript"> $(document).ready(function(){ ...
- 站内搜索——Lucene +盘古分词
为了方便的学习站内搜索,下面我来演示一个MVC项目. 1.首先在项目中[添加引入]三个程序集和[Dict]文件夹,并新建一个[分词内容存放目录] Lucene.Net.dll.PanGu.dll.Pa ...
- keypress,keydown,keyup,charCode,keyCode兼容性问题
keypress对应的是字符编码,如“ABC”,“123”之类,有大小写之分(有兼容性问题) keydown,keyup对应的是键盘的键码,无大小写之分,每个键盘都有一个键码(无兼容性问题) 使用ke ...
- 【JavaEE企业应用学习记录】验证配置
package sanglp; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.validat ...