ado.net 连接数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
一.用SqlConnection连接SQL Server
 
1..加入命名空间
 
using System.Data.SqlClient;
 
2.连接数据库
 
SqlConnection myConnection = new SqlConnection();
 myConnection.ConnectionString = "user id=sa;password=sinofindb;initial catalog=test;data source=127.0.0.1;Connect Timeout=30";
 myConnection.Open();
 
  
 
改进(更通用)的方法:
 
string MySqlConnection="user id=sa;password=sinofindb;Database =test;data source=127.0.0.1;Connect Timeout=30";
 SqlConnection myConnection = new SqlConnection(MySqlConnection);
 myConnection.Open();
 
  
 
二。用OleDbConnection连接
 
 
1.加入命名空间
 
using System.Data.OleDb;
 
 
 2.连接sql server
 
string MySqlConnection="Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=test;Integrated Security=SSPI;";
 
SqlConnection myConnection = new SqlConnection(MySqlConnection);
 myConnection.Open();
 
  
 
3.连接Access(可通过建立.udl文件获得字符串)
 
string MySqlConnection="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db2000.mdb;
 
Persist Security Info=False;
 
 
 4.连接Oracle(也可通过OracleConnection连接)
 
string MySqlConnection="Provider=MSDAORA;Data Source=db; user id=sa;password=sinofindb";
 
  
 
三.创建Command对象
 
 
1.SqlCommand 构造函数
 
①初始化 SqlCommand 类的新实例。public SqlCommand();
 
SqlCommand myCommand = new SqlCommand();
 
  
 
②初始化具有查询文本的 SqlCommand 类的新实例。public SqlCommand(string);
 
String mySelectQuery = "Select * FROM mindata";
 SqlCommand myCommand = new SqlCommand(mySelectQuery);
 ③初始化具有查询文本和 SqlConnection 的SqlCommand类实例。
 
Public SqlCommand(string, SqlConnection);
 
String mySelectQuery = "Select * FROM mindata";
 string myConnectString = "user id=sa;password=;database=test;server=mySQLServer";
 SqlConnection myConnection = new SqlConnection(myConnectString);
 SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);
 
 
 ④初始化具有查询文本、SqlConnection 和 Transaction 的 SqlCommand 类实例。
 
public SqlCommand(string, SqlConnection, SqlTransaction);
 
SqlTransaction myTrans = myConnection.BeginTransaction();
 String mySelectQuery = "Select * FROM mindata";
 string myConnectString = "user id=sa;password=;database=test;server=mySQLServer";
 SqlConnection myConnection = new SqlConnection(myConnectString);
 SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection, myTrans);
 
 
 2.建立SqlCommand与SqlConnection的关联。
 
myCommand.Connection = myConnection;
 
或者:SqlCommand myCommand = myConnection.CreateCommand;
 
  
 
3.设置SqlCommand的查询文本。
 
myCommand.CommandText = "Select * FROM mindata";
 
或者第2种构造:SqlCommand myCommand = new SqlCommand(mySelectQuery);
 
给SqlCommand对象提供两个查询字符串,每个查询字符串访问不同的表,返回不同的结果集。
 
两个查询语句用分号分隔。
 
  
 
4. 执行命令。
 
ExecuteReader
返回一行或多行
 
ExecuteNonQuery
对 Connection 执行 Transact-SQL 语句并返回受影响的行数(int)
 
ExecuteScalar
返回单个值(如一个聚合值).返回结果集中第一行的第一列。忽略额外的列或行
 
ExecuteXmlReader
将 CommandText 发送到 Connection 并生成一个 XmlReader 对象。
 
  
 
 
SqlDataReader myReader = myCommand.ExecuteReader();
 
或SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
 
while(myReader.Read()) //循环读取数据
{
Console.WriteLine(myReader.GetString(0));// 获取指定列的字符串形式的值
Console.WriteLine(myReader. GetValue(1));// 获取以本机格式表示的指定列的值
}
 
 
 CommandText = "select count(*) as NumberOfRegions from region";
 Int count = (int) myCommand.ExecuteScalar();
 
  
 
关于OleDbCommand对象的使用。
 
  
 
四.DataReader的使用
 
1.遍历结果集
 
while (myReader.Read())
 Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1));
 myReader.Close();
 
 
 2.使用序数索引器。
 
while (myReader.Read())
 Console.WriteLine("\t{0}\t{1}", myReader[0].ToString(), myReader[1].ToString());
 myReader.Close();
 
 
 3.使用列名索引器。
 
while (myReader.Read())
 Console.WriteLine("\t{0}\t{1}", myReader["code].ToString(), myReader["name"].ToString());
 myReader.Close();
 
  
 
4.使用类型访问器。
 
public char GetChar(int i); 获取指定列的单个字符串形式的值
public DateTime GetDateTime(int i); 获取指定列的 DateTime 对象形式的值
public short GetInt16(int i); 获取指定列的 16 位有符号整数形式的[C#]
 public string GetString(int i); 获取指定列的字符串形式的值
 
 
5.得到列信息。
 
myReader.FieldCount 获取当前行中的列数
myReader.GetFieldType(序号) 获取是对象的数据类型的 Type
 myReader.GetDataTypeName(序号) 获取源数据类型的名称
myReader.GetName(序号) 获取指定列的名称
myReader.GetOrdinal(序号) 在给定列名称的情况下获取列序号
 
 
6.得到数据表的信息。
 
myReader.GetSchemaTable() 返回一个 DataTable
 
 
 7.操作多个结果集。
myReader.NextResult() 使数据读取器前进到下一个结果集
do
 {
 while (myReader.Read())
 Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1));
 }
 while(myReader.NextResult());
 
 
五.DataAdapter
 
 
 1.创建SqlDataAdapter
初始化 SqlDataAdapter 类的新实例。
public SqlDataAdapter();
将指定的 SqlCommand 作为SelectCommand 属性,初始化 SqlDataAdapter 类的新实例。
public SqlDataAdapter(SqlCommand);
用 selectcommand字符串 和 SqlConnection对象初始化SqlDataAdapter 类的新实例。
public SqlDataAdapter(string, SqlConnection);
用 selectcommand字符串 和 一个连接字符串 初始化SqlDataAdapter 类的新实例。
public SqlDataAdapter(string, string);
 
 
 2.DataAdapter和SqlConnection,SqlCommand建立关联。
1.DataAdapter在构造参数时建立
2.SqlDataAdapter adapter = new SqlDataAdapter();
 adapter.SelectCommand = new SqlCommand(query, conn);
 
 
 3.DataAdapter.Fill()方法。
 
在 DataSet 中添加或刷新行以匹配使用 DataSet 名称的数据源中的行,并创建一个名为“Table”的 DataTable。
public override int Fill(DataSet);
在 DataSet 中添加或刷新行以匹配使用 DataSet 和 DataTable 名称的数据源中的行。
public int Fill(DataSet, string);
 
 
在 DataSet 的指定范围中添加或刷新行以匹配使用 DataSet 和 DataTable 名称的数据源中的行。
 
public int Fill(DataSet, int, int, string);
 
 
在 DataTable 中添加或刷新行以匹配使用 DataTable 名称的数据源中的行。
public int Fill(DataTable);
 
 
在 DataTable 中添加或刷新行以匹配使用指定 DataTable 和 IDataReader 名称的数据源中的行。
protected virtual int Fill(DataTable, IDataReader);
 
在 DataTable 中添加或刷新行以匹配使用 DataTable 名称、指定的 SQL Select 语句和 CommandBehavior 的数据源中的行。
protected virtual int Fill(DataTable, IDbCommand, CommandBehavior);
 
 
六.DataTable 类
 
七.DataColumn 类
 
八.DataRow 类
 
 
 九.DataSet 类
1.创建DataSet 对象
 
初始化 DataSet 类的新实例。
public DataSet();
 
用给定名称初始化 DataSet 类的新实例。
public DataSet(string);
 
 
 2.用DataAdapter填充DataSet
 
DataSet myds=new DataSet();
 adapter.fill(myds)
 adapter.fill(myds,”表名”); 用一个表去填充DataSet.
 
  
 
十. DataTableCollection 类。 表示 DataSet 的表的集合。
 
DataTableCollection dtc = ds.Tables;
 DataTable table = dtc[“表名”];
String strExpr = "id > 5";
 String strSort = "name DESC";
 DataRow[] foundRows = customerTable.Select( strExpr, strSort,);
 
进行动态的筛选和排序。
DataTable.Select() 方法 : 获取 DataRow 对象的数组,
 
①获取所有 DataRow 对象的数组。
public DataRow[] Select();
 
  
 
②按主键顺序(如没有主键,则按照添加顺序),获取与筛选条件相匹配的所有 DataRow 对象的数组。
public DataRow[] Select(string);
 
 
 ③获取按照指定的排序顺序且与筛选条件相匹配的所有 DataRow 对象的数组。
 
public DataRow[] Select(string, string);
 
 
 ④获取与排序顺序中的筛选器以及指定的状态相匹配的所有 DataRow 对象的数组。
 
public DataRow[] Select(string, string, DataViewRowState);
 
  
 
十一。DataView 类 : 是DataTable内容的动态视图。
 
1. 创建对象
 
初始化 DataView 类的新实例。
 
public DataView();
 
用指定的 DataTable 初始化 DataView 类的新实例。
 
public DataView(DataTable);
 
用指定的 DataTable、RowFilter、Sort 和 DataViewRowState 初始化 DataView 类的新实例。
 
public DataView(DataTable, string, string, DataViewRowState);
 
 
 DataView myview = new DataView(ds.Tables["Suppliers"], "id > 5", "name DESC"
DataViewRowState.CurrentRows);
 
 
 2 .得到DataView的行数据。
 
foreach (DataRowView myrowview in myview)
 {
 for (int i = 0; i < myview.Table.Columns.Count; i++)
 Console.Write(myrowview [i] + "\t");
 Console.WriteLine();
 }
详细出处参考:http://www.jb51.net/article/5279.htm
  
更多0
   
上一篇:C# winform对话框用法大全收藏
下一篇:最快的存储过程分页 50W
.    相关主题推荐ado.net sql server 数据库 security server 相关博文推荐MySQL5入门知识OpenStack中的Security ...SVN安装

ado.net 连接数据库,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。