c#访问数据库的两种方法以及事务的两种方法
//2015/07/03
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient; namespace Ado.netstart_1
{
class Program
{
static void Main(string[] args)
{
//特殊的字符串,数据库连接串
//第一种
string connectionString = "server=.;database=BookSample;uid=LJK;pwd=123456;";
//第二种
//windows身份验证
//当使用windows身份验证的时候,windows用户就是运行程序的用户
//string connectionString = "server=.;integrated security=true;database=BookSample"; //用来访问数据库的类
SqlConnection connection = new SqlConnection(connectionString); try
{
//与数据库建立连接
connection.Open();
Console.WriteLine("已经建立连接"); //sql就是一个字符串
string sql = "insert into students(ID,StuName,Phone,Address,City,State) values(7,'aaa','1318697125','zz','bb','ccc')";
//SqlCommand 表示发送数据库执行SQL命令
SqlCommand command = new SqlCommand(sql,connection);
//将命令发送到数据库执行
//sql语句可分为:查询语句和非查询语句 //默认工作在自动事务之下
//如果工作在手动事务之下
//begin transaction
//rollback / commit //在执行sql dml之前,启动事务
SqlTransaction trans = connection.BeginTransaction();//事务对象 //设定命令所属的事务管理
command.Transaction = trans; int effectCount = command.ExecuteNonQuery();
Console.WriteLine("{0} 行受影响",effectCount); Console.Write("命令已经执行,事务还没有提交,你确定提交吗?Y/N");
string line = Console.ReadLine();
if (line.Substring(, ).ToUpper() == "Y")
{
trans.Commit();
Console.WriteLine("事务已经提交");
}
else
{
trans.Rollback();
Console.WriteLine("事务已经回滚");
}
}
catch (SqlException exception)
{
Console.WriteLine(exception.Message);
}
finally
{
//或者断开与数据库的连接
connection.Dispose();
//connection.Close();
Console.WriteLine("已经断开连接");
}
Console.ReadKey();
}
}
}
c#访问数据库的两种方法以及事务的两种方法的更多相关文章
- Spring事务:一种编程式事务,三种声明式事务
事务隔离级别 隔离级别是指若干个并发的事务之间的隔离程度.TransactionDefinition 接口中定义了五个表示隔离级别的常量: TransactionDefinition.ISOLATIO ...
- Spring框架访问数据库的两种方式的小案例
1.1 以Xml的方式访问数据库的案例 要以xml的方式访问数据库需要用到JdbcTemplate ,因为 JdbcTemplate(jdbc的模板对象)在Spring 中提供了一个可以操作数据库的对 ...
- PHP访问数据库配置通用方法
提取一种对数据库配置的通用方式 目的是通过通用类访问配置文件的方式,提供对数据库连接的动态获取和设置,使开发时和生产应用时都能够提供灵活的.简化的.解耦的操作方式.比如在配置文件中配置好两套数据库访问 ...
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 ...
- 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式
适用于app.config与web.config的ConfigUtil读写工具类 之前文章:<两种读写配置文件的方案(app.config与web.config通用)>,现在重新整理一 ...
- 两种动态加载JavaScript文件的方法
两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看 ...
- JPA访问数据库的几种方式
JPA访问数据库的几种方式 本文为原创,转载请注明出处:https://www.cnblogs.com/supiaopiao/p/10901793.html 1. Repository 1.1. 通过 ...
- 把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)
#把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进) ##背景 项目中经常需要把JSON数据填充到页面表单,一开始我使用easyui自带的form load方法,觉得效率很低,经 ...
- 【JPA】两种不同的实现jpa的配置方法
两种不同的实现jpa的配置方法 第一种: com.mchange.v2.c3p0.ComboPooledDataSource datasource.connection.driver_class=co ...
随机推荐
- Servlet中的过滤器Filter用法
1.过滤器的概念 Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应. 主要用于对HttpServletRequest 进行预处理,也可以对Http ...
- STM8的中断系统以及外部中断详解
STM8具有最多32的中断系统,在中断的处理上类似于cortexm系列的芯片,首先是每个中断的向量都是固化在系统内部的,用户需要向相应的中断向量flash位置写入中断处理函数,其二,每个中断向量都具有 ...
- JQueryUI确认框 confirm
$(function(){ $('#AlertMsg').dialog({ autoOpen: false, width: 300, modal: true, position: 'center', ...
- java.lang.ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig
问题描述: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with n ...
- C#中的协变OUT和逆变
泛型接口和泛型委托中经常使用可变性 in 逆变,out 协变 从 list<string>转到list<object> 称为协变 (string 从object 派生,那么 ...
- numpy 安装
sudo apt-get install python-scipy sudo apt-get install python-numpy sudo apt-get install python-matp ...
- 关于mysql中触发器old和new如何更好的区别我有话要说?
1.当使用insert语句的时候,如果原表中没有数据的话,那么对于插入数据后表来说新插入的那条数据就是new,如图所示: 2.当使用delete语句的时候,删除的那一条数据相对于删除数据后表的数据来说 ...
- Latex 的Table使用multirow and multicolumn
Here are some tips: Use a \multicolumn{1}{|l}{} & \multicolumn{2}{l|}{...} construct; Add anothe ...
- QT第四天学习
回顾: 1.信号与槽 public slots: //先声明后实现 signals: //只需要声明 connect(sender,SIGNAL(signal()),receiver,SLOT(slo ...
- Scrum
Scrum[编辑] 维基百科,自由的百科全书 Scrum是一种敏捷软件开发的方法学,用于迭代式增量软件开发过程.Scrum在英语是橄榄球运动中争球的意思. 虽然Scrum是为管理软件开发项目而开发 ...