c#访问数据库的两种方法以及事务的两种方法
时间:2021-07-01 10:21:17
帮助过:2人阅读
//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 }
c#访问数据库的两种方法以及事务的两种方法
标签: