ADO.NET目录汇总1
1.引用命名空间:
using System.Data;
using System.Data.SqlClient;【访问SQL Server定义的类】
2.连接字符串
string connectionString
= "server=.;integrated security=true;database=mydb"
= "server=.;database=mydb;user id=sa;password=123"
= "server=.;database=mydb;uid=sa;pwd=123"
3.访问数据库
System.Data.SqlClient.SqlConnection connection
= new SqlConnection (connectionString);
a.与数据库建立连接:connection.Open();
b.断开数据库的连接:connection.Close();或者//connection.Dispose();
4.数据库操作【命令对象和事务对象】
string sql = "insert into ...";
System.Data.SqlClient.SqlCommand command = new SqlCommand(sql, connection);
command.ExecuteNonQuery(); //返回一个影响数(int)
a.以上是隐式事务下工作
b.显式事务工作
System.Data.SqlClient.SqlTransaction trans = connection.BeginTransaction();
command.Transaction = trans;
-----》
int effectCount = command.ExecuteNonQuery(); //工作内容
《-----
->trans.Commit();
->trans.Rollback();
5.访问存储过程-传入参数-传出参数
a.传入参数
string sql = "存储过程名字";
System.Data.SqlClient.SqlCommand command = new SqlCommand(sql, connection);
command.CommandType = = CommandType.StoreProcedure;//设置存储过程
System.Data.SqlClient.SqlParameter pEnd = new SqlParameter("@end",System.Data.SqlDbType.Int);
pEnd.Value = 100; //参数对象
command.Parameters.Add(pEnd);//加入参数
-->command.ExecuteNonQuery();
b.传出参数
System.Data.SqlClient.SqlParameter pResult = new SqlParameter("@result",System.Data.SqlDbType.Int);
pResult.Direction = ParameterDirection.Output;//参数对象
command.Parameters.Add(pResult);--OK
-->int result = (int) pResult.Value;
c.Return参数
System.Data.SqlClient.SqlParameter pReturn = new SqlParameter("@returnValue",System.Data.SqlDbType.Int);
pReturn.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(pReturn);--OK
-->int returnValue = pReturn.Value as int;
6.DataReader查询
using ( SqlConnection connection = new SqlConnect(connectionString))
{
connection.Open();
string sql = "select sid,sname,salias,sage from tb_students";
SqlCommand command = new SqlCommand(sql, connection);
SqlDataReader reader = command.ExecuteReader();
while(reader.Read()) //返回boolean
{
int id = reader.GetInt32(0); //支持索引器 reader[0]\reader["sid"];
string name = reader.GetString(1);
string alias = null;
if(!reader.IsDBNull(2))
{
salias = reader.GetString(2);
}
int? age = null; //可空类型,用于值类型
age = reader.GetInt32(3);
if(age.HasValue)
{
age.value;
}
}
reader.Dispose();
}
7.读取单个的值-数据访问接口-数据访问对象
a.第一行,第一列:
object obj = command.ExecuteScalar();
System.Data.SqlClient.SqlConnection
System.Data.SqlClient.SqlCommand
System.Data.SqlClient.SqlTransaction
System.Data.SqlClient.SqlParameter
Command.ExecuteNonQuery
Command.ExecuteReader
Command.ExecuteScalar
8.数据访问对象的实现
如:scope_identity()
string connectionString = "server=.;database=mydb;integrated security=true;";
using(SqlConnection connection = new SqlConnection(connectionString))
{
string sql = "insert into ...;select scope_identity();";
SqlCommand command = new SqlCommand(sql, connection);
SqlParameter pval1 = new SqlParameter("@pval1",SqlDbType.ValChar,10);
SqlParameter pval2 = new SqlParameter("@pval2",SqlDbType.ValChar,10);
pval1.value="111";
pval2.value="222";
command.Parameters.Add(pval1);
command.Parameters.Add(pval2);
connection.Open();
object obj = command.ExecuteScalor(); //numeric(38,0)
}
9.DataTable
System.Data.DataTable table = new System.Data.DataTable();
System.Data.DataColumn idColumn
= new System.Data.DataColumn("sid",System.Type.GetType("System.Int32"));
= new System.Data.DataColumn("sid",typeof(int));
System.Data.DataColumn nameColumn = new System.Data.DataColumn("sid",typeof(string));
//表结构
table.Columns.Add(idColumn);
table.Columns.Add(nameColumn);
//主键约束
table.ParmaryKey = new DataColumn[]{ idColumn };
idColumn.AllowDBNull = false;
//idColumn.Unique
...
DataRow row = table.NewRow();
row[idColum]=1;
row[1]="Jasonlny";
table.Rows.Add(row);
foreach(DataRow dr in table.Rows)
{
...dr[..]
}
==========================================
DataTable table = new DataTable();
string connectionString = "server=.;database=mydb;integrated security=true;";
using(SqlConnection connection = new SqlConnection(connectionString))
{
string sql = "select ... ...";
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
using(SqlDataReader reader = command.ExecuteReader())
{
int columnCount = reader.FieldCount;
for(int i=0; i<columnCount; i++)
{
DataColumn column = new DataColumn(reader.GetName(i), reader.GetFieldType(i));
table.Columns.Add(column);
}
while(reader.Read())
{
DataRow dr = table.NewRow();
for(int i=0; i<columnCount; i++)
{
dr[i] = reader[i];
}
table.Rows.Add(dr);
}
}
}
10.DataAdapter-DataSet
System.Data.DataSet dset = new System.Data.DataSet();
//dset.Tables...
string connectionString = "...";
string sql = "select ...";
System.Data.SqlClient.SqlDataAdapter adapter = new SqlDataAdapter(sql,connectionString);
adapter.Fill(dset);
System.Data.DataTable table = dset.Tables[0];
//adapter.SelectCommand...
ADO.NET目录汇总1的更多相关文章
- ASP.NET MVC4入门到精通系列目录汇总
序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...
- ASP.NET MVC4入门到精通系列目录汇总(转)
序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...
- 史上最全面的SignalR系列教程-目录汇总
1.引言 最遗憾的不是把理想丢在路上,而是理想从未上路. 每一个将想法变成现实的人,都值得称赞和学习. 致正在奔跑的您! 2.SignalR介绍 SignalR实现服务器与客户端的实时通信 ,她是一个 ...
- Spring Cloud Eureka(一): 开篇说明及目录汇总
开篇简述 基于Spring Boot 和 Spring Cloud 的微服务应用,本人在工作中已经使用两年有余了,伴随着个人学习计划的实施,希望借助博文的方式,将工作中使用到的技术点体系化的总结出来, ...
- 跟我学SpringMVC目录汇总贴、PDF下载、源码下载
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- Java 9 揭秘全目录汇总
Tips 做一个终身学习的人. 当写这篇文章时,关于Java 9的学习就先告一段落了. 首先介绍一下背景,大概两个月前,我突然有兴趣想看看Java 9,当时读了一本英文原著<Java 9 Rev ...
- openstack pike 集群高可用 安装 部署 目录汇总
# openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...
- 《Java 9 揭秘》全目录汇总
Tips 做一个终身学习的人. 当写这篇文章时,关于Java 9的学习就先告一段落了. 首先介绍一下背景,大概两个月前,我突然有兴趣想看看Java 9,当时读了一本英文原著<Java 9 Rev ...
- 死磕salt系列-salt文章目录汇总
死磕salt系列-salt入门 死磕salt系列-salt配置文件 死磕salt系列-salt grains pillar 配置 死磕salt系列-salt 常用modules 死磕salt系列-sa ...
随机推荐
- lintcode 刷题 by python 部分链表题总结(2)
本篇博客对最近做的链表的算法题做个简单的小结,主要描述题目和提供解题思路,具体代码见我的 github:https://github.com/MUSK1881/lintcode-by-python 3 ...
- JavaScript中的函数-7---函数的作用,定义,调用
JavaScript中的函数 函数也是对象,并且是javascript中的一等公民,可以用来创建普通对象.对象只是属性和值的集合 学习目标 1.掌握函数的作用 2.掌握函数的定义 3.掌握函数的调用 ...
- lesson5-图像检测-小象cv
R-CNN: 2014,cnn为Alexnet 训练流程: 1)在imagenet上对cnn模型pre-train 2)使用所有ss生成区域对1)进行fine-tune ~softmax改为21维度 ...
- Mypwd 的解读与实现 20155208
Mypwd 的解读与实现 20155208 linux下pwd命令的编写 实验要求: 1 .学习pwd命令 2 . 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 .实现my ...
- 四则运算V1.1
作业:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/997 代码:https://coding.net/u/Dawnfox/p/f4 ...
- acm 2084
////////////////////////////////////////////////////////////////////////////////#include<iostream ...
- 模块化,AMD规范
模块化:代码量比较大,可能会有几个人同时写一个页面,同样写在一个文件里面,可能会有冲突,模块化可以解决代码的冲突(匿名函数调用,自己调用自己,就是立即执行函数) 团队的分工更加的明确 异步的执行: A ...
- CTEX(LaTeX) 编译 中文
CTEX 中文编码&编译问题 #win10 tex 文档为 GBK 编码 https://zhidao.baidu.com/question/93645685.html \documentcl ...
- vue全家桶+Koa2开发笔记(6)--app开发
1.环境配置 详见文章<Nuxt 开发 - 项目初始化> 1.1 使用nuxt脚手架 https://zh.nuxtjs.org/guide/installation 1.2 在nod ...
- SQL Server 并发死锁解决案例备忘
SET @sql = ' SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; SET DEADLOCK_PRIORITY 10 BEGIN TRAN DE ...