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的更多相关文章

  1. ASP.NET MVC4入门到精通系列目录汇总

    序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...

  2. ASP.NET MVC4入门到精通系列目录汇总(转)

    序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...

  3. 史上最全面的SignalR系列教程-目录汇总

    1.引言 最遗憾的不是把理想丢在路上,而是理想从未上路. 每一个将想法变成现实的人,都值得称赞和学习. 致正在奔跑的您! 2.SignalR介绍 SignalR实现服务器与客户端的实时通信 ,她是一个 ...

  4. Spring Cloud Eureka(一): 开篇说明及目录汇总

    开篇简述 基于Spring Boot 和 Spring Cloud 的微服务应用,本人在工作中已经使用两年有余了,伴随着个人学习计划的实施,希望借助博文的方式,将工作中使用到的技术点体系化的总结出来, ...

  5. 跟我学SpringMVC目录汇总贴、PDF下载、源码下载

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. Java 9 揭秘全目录汇总

    Tips 做一个终身学习的人. 当写这篇文章时,关于Java 9的学习就先告一段落了. 首先介绍一下背景,大概两个月前,我突然有兴趣想看看Java 9,当时读了一本英文原著<Java 9 Rev ...

  7. openstack pike 集群高可用 安装 部署 目录汇总

    # openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...

  8. 《Java 9 揭秘》全目录汇总

    Tips 做一个终身学习的人. 当写这篇文章时,关于Java 9的学习就先告一段落了. 首先介绍一下背景,大概两个月前,我突然有兴趣想看看Java 9,当时读了一本英文原著<Java 9 Rev ...

  9. 死磕salt系列-salt文章目录汇总

    死磕salt系列-salt入门 死磕salt系列-salt配置文件 死磕salt系列-salt grains pillar 配置 死磕salt系列-salt 常用modules 死磕salt系列-sa ...

随机推荐

  1. C++ STL 数据结构与算法 —— 排序

    1. Top k 大的数 排序后直接索引输出:O(nlog⁡n)" role="presentation">O(nlogn)O(nlog⁡n) std::sort( ...

  2. Anaconda canda 安装 Python3 配置

    链接: 1.安装Python 3.5以及tensorflow 以前用virtualenv觉得挺好用了,但是用多python版本下安装tensorflow,出现问题: pip is configured ...

  3. 百练8216-分段函数-2016正式A题

    百练 / 2016计算机学科夏令营上机考试 已经结束 题目 排名 状态 统计 提问   A:分段函数 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 编写程序 ...

  4. Unity调用Windows对话框保存时另存为弹框

    Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  5. CodeForces - 1100F:Ivan and Burgers (线性基&贪心)(离线 在线)

    题意:给定N个数,Q次询问,求区间最大异或和. 思路:一开始想的线性基+线段树.单次线性基合并的复杂度为20*20,结合线段树,复杂度为O(NlogN*20*20):显然,超时. 超时代码: #inc ...

  6. SFM(structure from motion)学习记录(一)

    visualSFM用法 添加图片 "File->Open Multi Images". 一次添加多幅图片 "SfM->Load NView Match&quo ...

  7. acm 2057

    ////////////////////////////////////////////////////////////////////////////////#include<iostream ...

  8. AangularJS相关术语

    1.   数据模型对象(model object)是指$scope对象.$scope对象又是一个简单的JavaScript对象,其中的属性可以被视图访问,也可以同控制器进行交互. 2.  $scope ...

  9. 【HAOI2011】 向量

    数论好劲啊 原题: 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出 ...

  10. 【idea】清除类中无用的包

    快捷键 ctrl+alt+o 自动清除的配置方法 可以settings-general-auto import-java项,勾选optimize imports on the fly,在当前项目下会自 ...