1. using
2. using
3. using
4. using
5. using
6. namespace
7. {
8. class
9. {
10. private const string ConnString = "server=localhost;integrated security=sspi;database=pubs;";
11. //---------------------常用的连接字符串参数-------------------------------------------------
12. //server=locahost或 . 登录服务器地址这里是本地
13. //Data Source
14. //Address
15. //Addr
16. //Network Address
17. //integrated security=sspi或true 以Windows当前身份登录
18. //uid=sa; 登录用户名:sa
19. //pwd=sa; 登录密码:sa
20. //Connect Timeout=15 //设置连接等待时间,以秒为单位
21. //Trusted_Connection=True 设置信任连接
22. //Asynchronous Processing=true 设置异步访问数据库,默认关闭
23. //MultipleActiveResultSets=True 在单个连接上得到和管理多个、仅向前引用和只读的结果集(ADO.NET2.0,SQL 2005)
24. //database=pubs 或 Initial Catalog=pubs 指定数据库:pubs
25. //Max Pool Size 最大连接数
26. //Min Pool Size 最小连接数
27. //Pooling 当设置为true时,SQL连接将从连接池获得,如果没有则新建并添加到连接池中,默认是true.false则不设连接池
28. //Connection Lifetime 在连接池中应用,指定一个连接处于close后的生存时间大于指定时间并属于最小连接数以外的将自动消毁
29. //Application Name 应用程序名称或者当没有提供应用程序时为.Net SqlClient数据提供者
30. //Connection Reset true 当连接从连接池移走时决定是否重置数据库连接.当设置为 false 时用于避免获得连接时的额外服务器往复代价
31. //Enlist true 为真时,连接池自动列出创建线程的当前事务上下文中的连接
32. //Workstation ID 指定工作组的名称
33. //Packet Size= 就是设置网络数据包的大小值,默认为8192
34. //Network Library 设置网络连接协议
35.
36. //当通过SQLOLEDB提供者进行连接时使用以下语法:
37. //Network Library=dbmssocn
38. //但通过MSDASQL提供者进行连接时使用以下语法:
39. //Network=dbmssocn
40.
41. //名称 网络协议库
42. //dbnmpntw Win32 Named Pipes
43. //dbmssocn Win32 Winsock TCP/IP
44. //dbmsspxn Win32 SPX/IPX
45. //dbmsvinn Win32 Banyan Vines
46. //dbmsrpcn Win32 Multi-Protocol (Windows RPC)
47. //------------------------连接字符串示例 -----------------------------------------------------------------------------
48. //通过IP地址连接,必需确保SQL服务器开启1433端口和检查SQL网络连接启用TCP/IP协议
49. //Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
50. //默认情况下, SQL服务器的微软.NET框架数据提供者设置网络包大小对8192个字节.
51. //然而这不一定是最好的,你可以根据你觉的合适的包大小设置包的大小
52. //Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;Packet Size=4096;
53. //-----------------------------------------------------------------------------------------------
54. //因为考虑到实现复杂业务逻辑时,需要同进使用GetDataReader、GetDataAdapter、GetTransaction等
55. //连接那里会变得麻烦,所以区分定义三种方式的连接对象
56. private SqlConnection SqlDrConn = new
57. private SqlConnection SqlDaConn = new
58. private SqlConnection SqlTrConn = new
59.
60. public DataTable GetDataReader(string StrSql)//数据查询
61. {
62. //当连接处于打开状态时关闭,然后再打开,避免有时候数据不能及时更新
63. if
64. {
65. SqlDrConn.Close();
66. }
67. try
68. {
69. SqlDrConn.Open();
70. new
71. SqlDataReader SqlDr = SqlCmd.ExecuteReader();
72. if
73. {
74. new
75. //---------------Method 1-------------------
76. //for (int i = 0; i < SqlDr.FieldCount; i++)
77. //{
78. // dt.Columns.Add(SqlDr.GetName(i), SqlDr.GetFieldType(i));
79. //}
80. //while (SqlDr.Read())
81. //{
82. // DataRow dr= dt.NewRow();
83. // for (int i = 0; i < SqlDr.FieldCount; i++)
84. // {
85. // dr[i] = SqlDr[i];
86. // }
87. // dt.Rows.Add(dr);
88. //}
89. //---------------Method 2-------------------
90. //更为简单
91. dt.Load(SqlDr);
92. //关闭对象和连接
93. SqlDr.Close();
94. SqlDrConn.Close();
95. return
96. }
97. return null;
98. }
99. catch
100. {
101. System.Windows.Forms.MessageBox.Show(ex.Message);
102. return null;
103. }
104. finally
105. {
106. SqlDrConn.Close();
107. }
108. }
109.
110. public SqlDataAdapter GetDataAdapter(string StrSql)//数据增删修查
111. {
112. if
113. {
114. SqlDaConn.Close();
115. }
116. try
117. {
118. SqlDaConn.Open();
119. new
120. //提供自动生成单表命令的一种方式
121. new
122. return
123. }
124. catch
125. {
126. System.Windows.Forms.MessageBox.Show(ex.Message);
127. return null;
128. }
129. finally
130. {
131. SqlDaConn.Close();
132. }
133. }
134.
135. //这里使用了ArrayList数组来存放SQL语句集
136. public bool GetTransaction(System.Collections.ArrayList StrSqlList)//实现事务
137. {
138. if
139. {
140. SqlTrConn.Close();
141. }
142. null;
143. try
144. {
145. SqlTrConn.Open();
146. SqlTr = SqlTrConn.BeginTransaction();
147. new
148. SqlCmd.Connection = SqlTrConn;
149. SqlCmd.Transaction = SqlTr;
150. //加载数组里的SQL语句
151. for (int
152. {
153. SqlCmd.CommandText = StrSqlList[i].ToString();
154. SqlCmd.ExecuteNonQuery();
155. }
156. //提交所有事务
157. SqlTr.Commit();
158. return true;
159. }
160. catch
161. {
162. //一但出错,回滚所有事务,还原状态
163. if(SqlTr!=null) SqlTr.Rollback();
164. System.Windows.Forms.MessageBox.Show(ex.Message);
165. return false;
166. }
167. finally
168. {
169. SqlTrConn.Close();
170. }
171. }
172. }
173. }
174. //有什么问题可以联系我,下回将献"VS.net C# 连接池实现与应用"
175.
176.
177.
c语言和sqlite3写词典 c语言连接sql数据库
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C语言学习3
继续学
数据类型 浮点 函数参数 -
C语言操作sqlite3
C语言编程测试sqlite3 编程环境搭建 运行C程序,需要先下载SQLite的源码:https:/
数据库 sqlite sql SQL