c#访问数据库的两种方法以及事务的两种方法

 1 //2015/07/03
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 using System.Data;
 8 using System.Data.SqlClient;
 9
10 namespace Ado.netstart_1
11 {
12     class Program
13     {
14         static void Main(string[] args)
15         {
16             //特殊的字符串,数据库连接串
17             //第一种
18             string connectionString = "server=.;database=BookSample;uid=LJK;pwd=123456;";
19             //第二种
20             //windows身份验证
21             //当使用windows身份验证的时候,windows用户就是运行程序的用户
22             //string connectionString = "server=.;integrated security=true;database=BookSample";
23
24             //用来访问数据库的类
25             SqlConnection connection = new SqlConnection(connectionString);
26
27             try
28             {
29                 //与数据库建立连接
30                 connection.Open();
31                 Console.WriteLine("已经建立连接");
32
33                 //sql就是一个字符串
34                 string sql = "insert into students(ID,StuName,Phone,Address,City,State) values(7,‘aaa‘,‘1318697125‘,‘zz‘,‘bb‘,‘ccc‘)";
35                 //SqlCommand 表示发送数据库执行SQL命令
36                 SqlCommand command = new SqlCommand(sql,connection);
37                 //将命令发送到数据库执行
38                 //sql语句可分为:查询语句和非查询语句
39
40                 //默认工作在自动事务之下
41                 //如果工作在手动事务之下
42                 //begin transaction
43                 //rollback / commit
44
45                 //在执行sql dml之前,启动事务
46                 SqlTransaction trans = connection.BeginTransaction();//事务对象
47
48                 //设定命令所属的事务管理
49                 command.Transaction = trans;
50
51
52                 int effectCount = command.ExecuteNonQuery();
53                 Console.WriteLine("{0} 行受影响",effectCount);
54
55                 Console.Write("命令已经执行,事务还没有提交,你确定提交吗?Y/N");
56                 string line = Console.ReadLine();
57                 if (line.Substring(0, 1).ToUpper() == "Y")
58                 {
59                     trans.Commit();
60                     Console.WriteLine("事务已经提交");
61                 }
62                 else
63                 {
64                     trans.Rollback();
65                     Console.WriteLine("事务已经回滚");
66                 }
67             }
68             catch (SqlException exception)
69             {
70                 Console.WriteLine(exception.Message);
71             }
72             finally
73             {
74                 //或者断开与数据库的连接
75                  connection.Dispose();
76                  //connection.Close();
77                  Console.WriteLine("已经断开连接");
78             }
79             Console.ReadKey();
80         }
81     }
82 }
时间: 2024-12-17 06:53:58

c#访问数据库的两种方法以及事务的两种方法的相关文章

JAVAWEB开发之事务详解(mysql与JDBC下使用方法、事务的特性、锁机制)和连接池的详细使用(dbcp以d3p0)

事务简介 事务的概念:事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功 在开发中,有事务的存在,可以保证数据的完整性. 注意:数据库默认事务是自动提交的,也就是发一条SQL 就执行一条.如果想多条SQL语句放在一个事务中执行,需要添加事务有关的语句. 如何开启事务? 事务的操作方式: 创建表: create table account( id int primary key auto_increment, name varchar(20), money double

使用面向对象的方法访问数据库

使用面向对象的方法访问数据库new mysqli("服务器名称","用户名","密码","数据库名称"); 判断连接是否成功1.mysqli_connect_error()2.!mysqli_connect_error() or die("error!"); 执行SQL语句返回结果集对象mysqli_query()函数执行某个针对数据库的查询:执行select查询时,返回一个mysqli_result对象:

连接访问数据库的技术方法

几种数据库连接方式优缺点比较 访问接口 易用性 运行能力 可扩展性 技术层次 突出特点 ODBC 差 较高 差 底层 可进行底层控制 MFC ODBC 好 一般 高层 同用标准,应用广泛 MFC DAO 好 较高 一般 高层 访问JET性能最好 OLE DB 很难 高 好 底层 可访问非关系型数据库 ADO 最好 高 好 高层 可访问非关系型数据库,有多种编程接口 ODBC 是一种底层的访问技术,因此,ODBC API 可以是客户应用程序能从底层设置和控制数据库,完成一些高级数据库技术无法完成的

两种动态加载JavaScript文件的方法

两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看下 动态加载script到页面大约有俩方法 第一种便是利用ajax方式,把script文件代码从背景加载到前台,而后对加载到的内容经过eval()实施代码.第二种是,动静创建一个script标签,配置其src属性,经过把script标签插入到页面head来加载js,相当于正在head中写了一个<sc

oracle四种访问数据库的方式

1.sql plus——命令操作: 数据库自带的命令工具,通过此工具可以在dos窗口中直接对数据库进行操作.使用此工具有两种进入方式: (1).在安装后的数据库下有一个应用程序开发,子目录里有一个sql plus,直接单击打开,就可以输入用户名.密码登录数据库进行操作. (2).直接打开windows的dos窗口(win键+R—>cmd命令回车进入),输入sql plus命令然后输入用户名密码即可以进入. 2.sql developer——图形化界面操作: 数据库自带的图形化操作工具,通过该工具

qemu-system和qemu-user两种模式动态模拟运行嵌入式固件方法总结

qemu-system和qemu-user两种模式动态模拟运行嵌入式固件方法总结 前言 搭建嵌入式固件的动态模拟环境的过程中遇到了许多的坑,最终终于搭建了起来,很有必要记录下遇到的问题,避免今后再踩坑. 工具 1.buildroot 下载地址 以buildroot 2019.02.4版本为例,编译mips大端架构环境. tar zxvf buildroot-2019.02.4.tar.gz apt-get install libncurses5-dev make menuconfig Targe

vc++加载透明png图片方法——GDI+和CImage两种

vc++加载透明png图片方法——GDI+和CImage两种 在加载png时遇到了麻烦,后来用了两个方法解决了.一个是用GDI+,另外就是用vs.net MFC自带的CImage. 先看看GDI+的方法 方法1: 1.GDI+画透明图层(alpha)的png图片 stdafx加入如下: #include <comdef.h>//初始化一下com口 #include "GdiPlus.h" using namespace Gdiplus; #pragma comment(li

Javascript中两种最通用的定义类的方法

在Javascript中,一切都是对象,包括函数.在Javascript中并没有真正的类,不能像C#,PHP等语言中用 class xxx来定义.但Javascript中提供了一种折中的方案:把对象定义描述为对象的配方(先看一下例子会比较容易理解).定义类的方法有很多种,这里有两中较为通用的方法,大家参考一下.这两种方法均可以解决 构造函数会重复生成函数,为每个对象都创建独立版本的函数的问题.解决了重复初始化函数和函数共享的问题??提示音:http://www.huiyi8.com/tishiy

【JPA】两种不同的实现jpa的配置方法

两种不同的实现jpa的配置方法 第一种: com.mchange.v2.c3p0.ComboPooledDataSource datasource.connection.driver_class=com.mysql.jdbc.Driver <!-- Where to find repositories --> <jpa:repositories base-package="org.springframework.data.jpa.example.repository.simpl