C井操作Access数据库知识
入门者使用……高手绕行
C#操作Access数据库的基础知识
通过ADO.NET的OleDb相关类来操作Access
主要知识点如下:
1
2
3
using System.Data.OleDb;
using System.Data;
连接字符串:
1
String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";
建立连接:
1
OleDbConnection connection = new OleDbConnection(connectionString);
使用OleDbCommand类来执行Sql语句:
1
2
3
OleDbCommand cmd = new OleDbCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();
C#操作Access数据库的基础知识2.
取得Access自增标识字段在插入数据后的id值
1
2
3
cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;
C#操作Access数据库的基础知识3.
执行事务
需要用到OleDbTransaction,关键语句如下:
1
2
3
4
5
6
7
8
9
10
11
12
OleDbConnection connection = new OleDbConnection(connectionString);
OleDbCommand cmd = new OleDbCommand();
OleDbTransaction transaction = null;
cmd.Connection = connection;
connection.Open();
transaction = connection.BeginTransaction();
cmd.Transaction = transaction;
cmd.CommandText=sql1;
cmd.ExecuteNonQuery();
cmd.CommandText=sql2;
cmd.ExecuteNonQuery();
transaction.Commit();
C#操作Access数据库的基础知识4.
执行查询,返回DataSet
1
2
3
4
5
6
7
OleDbConnection connection =
new OleDbConnection(connectionString);
DataSet ds = new DataSet();
connection.Open();
OleDbDataAdapter da =
new OleDbDataAdapter(sql, connection);
da.Fill(ds,"ds");
分页查询
分页查询使用OleDbDataReader来读取数据,并将结果写到一个DataSet中返回。
以上内容封装为三个可重用的类:AccessDBUtil,AccessPageUtil,Page
C#操作Access之创建mdb库浅析
C#操作Access之创建mdb库是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。
C#操作Access主要知识点如下:
1
2
3
using System.Data.OleDb;
using System.Data;
C#操作Access连接字符串:
1
String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=product.mdb";
C#操作Access建立连接:
1
OleDbConnection connection = new OleDbConnection(connectionString);
C#操作Access使用OleDbCommand类来执行Sql语句:
1
2
3
4
5
OleDbCommand cmd = new OleDbCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();
C#操作Access之创建mdb库,例程如下:
需要注意的是:参数mdbPath是mdb的完整路径(不包含表的名称)。
C#操作Access之创建mdb库实例:D: est.mdb
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
//创建mdb
public static bool CreateMDBDataBase(string mdbPath)
{
try
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ mdbPath + ";");
cat = null;
return true;
}
//C#操作Access之创建mdb库
catch {
return false;
}
}
C#操作Access之创建mdb库的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之创建mdb库有所帮助。
C#操作Access之创建表浅析
C#操作Access之创建表是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。
C#操作Access主要知识点如下:
1
2
3
using System.Data.OleDb;
using System.Data;
C#操作Access连接字符串:
1
String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=product.mdb";
C#操作Access建立连接:
1
OleDbConnection connection = new OleDbConnection(connectionString);
C#操作Access使用OleDbCommand类来执行Sql语句:
1
2
3
4
5
OleDbCommand cmd = new OleDbCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();
C#操作Access之创建表,例程如下:
通常一个mdb的可以包含n个表。下面的程序主要是创建一个table。
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
//新建mdb的表,C#操作Access之创建表
//mdbHead是一个ArrayList,存储的是table表中的具体列名。
public static bool CreateMDBTable(
string mdbPath,string tableName, ArrayList mdbHead)
{
try
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
string sAccessConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=" + mdbPath;
ADODB.Connection cn = new ADODB.Connection();
cn.Open(sAccessConnection, null, null, -1);
cat.ActiveConnection = cn;
//新建一个表,C#操作Access之创建表
ADOX.TableClass tbl = new ADOX.TableClass();
tbl.ParentCatalog = cat;
tbl.Name = tableName;
int size = mdbHead.Count;
for (int i = 0; i < size; i++)
{
//增加一个文本字段
ADOX.ColumnClass col2 = new ADOX.ColumnClass();
col2.ParentCatalog = cat;
col2.Name = mdbHead[i].ToString();//列的名称
col2.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
tbl.Columns.Append(col2, ADOX.DataTypeEnum.adVarWChar, 500);
}
cat.Tables.Append(tbl);
//这句把表加入数据库(非常重要) ,C#操作Access之创建表
tbl = null;
cat = null;
cn.Close();
return true;
}
catch { return false; }
}
C#操作Access之创建表的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之创建表有所帮助。
C#操作Access之读取mdb浅析
C#操作Access之读取mdb是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。
C#操作Access主要知识点如下:
1
2
3
using System.Data.OleDb;
using System.Data;
C#操作Access连接字符串:
1
String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";
C#操作Access建立连接:
1
OleDbConnection connection = new OleDbConnection(connectionString);
C#操作Access使用OleDbCommand类来执行Sql语句:
1
2
3
4
5
OleDbCommand cmd = new OleDbCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();
C#操作Access之读取mdb实例如下:
本例返回的是一个DataTable,如需其他格式可以自行转换。
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
// 读取mdb数据
public static DataTable ReadAllData(string tableName,
string mdbPath,ref bool success)
{
DataTable dt = new DataTable();
try
{
DataRow dr;
//1、建立连接 C#操作Access之读取mdb
string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ mdbPath + ";Jet OLEDB:Database Password=haoren";
OleDbConnection odcConnection = new OleDbConnection(strConn);
//2、打开连接 C#操作Access之读取mdb
odcConnection.Open();
//建立SQL查询
OleDbCommand odCommand = odcConnection.CreateCommand();
//3、输入查询语句 C#操作Access之读取mdb
odCommand.CommandText = "select * from " + tableName;
//建立读取
OleDbDataReader odrReader = odCommand.ExecuteReader();
//查询并显示数据
int size = odrReader.FieldCount;
for (int i = 0; i < size; i++)
{
DataColumn dc;
dc = new DataColumn(odrReader.GetName(i));
dt.Columns.Add(dc);
}
while (odrReader.Read())
{
dr = dt.NewRow();
for (int i = 0; i < size; i++)
{
dr[odrReader.GetName(i)] =
odrReader[odrReader.GetName(i)].ToString();
}
dt.Rows.Add(dr);
}
//关闭连接 C#操作Access之读取mdb
odrReader.Close();
odcConnection.Close();
success = true;
return dt;
}
catch
{
success = false;
return dt;
}
}
C#操作Access之读取mdb的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之读取mdb有所帮助。
C#操作Access之按列读取mdb浅析
C#操作Access之按列读取mdb是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。
C#操作Access主要知识点如下:
1
2
3
using System.Data.OleDb;
using System.Data;
C#操作Access连接字符串:
1
String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";
C#操作Access建立连接:
1
OleDbConnection connection = new OleDbConnection(connectionString);
C#操作Access使用OleDbCommand类来执行Sql语句:
1
2
3
4
5
OleDbCommand cmd = new OleDbCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();
C#操作Access之按列读取mdb内容实例如下:
columns数组存储的是你要查询的列名称(必须确保mdb表中存在你要的列)
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
// 读取mdb数据
public static DataTable ReadDataByColumns(string mdbPaht,
string tableName, string[] columns, ref bool success)
{
DataTable dt = new DataTable();
try
{
DataRow dr;
//1、建立连接 C#操作Access之按列读取mdb
string strConn = @"Provider=Microsoft.
Jet.OLEDB.4.0;Data Source="
+ mdbPath + ";Jet OLEDB:Database Password=haoren";
OleDbConnection odcConnection =
new OleDbConnection(strConn);
//2、打开连接 C#操作Access之按列读取mdb
odcConnection.Open();
//建立SQL查询
OleDbCommand odCommand = odcConnection.CreateCommand();
//3、输入查询语句
string strColumn = "";
for (int i = 0; i < columns.Length; i++)
{
strColumn += columns[i].ToString() + ",";
}
strColumn = strColumn.TrimEnd(',');
odCommand.CommandText = "select "+strColumn+
" from " + tableName;
//建立读取 C#操作Access之按列读取mdb
OleDbDataReader odrReader =
odCommand.ExecuteReader();
//查询并显示数据 C#操作Access之按列读取mdb
int size = odrReader.FieldCount;
for (int i = 0; i < size; i++)
{
DataColumn dc;
dc = new DataColumn(odrReader.GetName(i));
dt.Columns.Add(dc);
}
while (odrReader.Read())
{
dr = dt.NewRow();
for (int i = 0; i < size; i++)
{
dr[odrReader.GetName(i)] = odrReader[
odrReader.GetName(i)].ToString();
}
dt.Rows.Add(dr);
}
//关闭连接 C#操作Access之按列读取mdb
odrReader.Close();
odcConnection.Close();
success = true;
return dt;
}
catch
{
success = false;
return dt;
}
}
C#操作Access之按列读取mdb的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之按列读取mdb有所帮助。
C#操作Access实例解析
C#操作Access实例是怎么实现的呢?让我们来看看具体的代码:
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
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
/// <summary>
/// DataAccess 的摘要说明 C#操作Access实例解析
/// </summary>
public class DataAccess
{
protected static OleDbConnection conn = new OleDbConnection();
protected static OleDbCommand comm = new OleDbCommand();
public DataAccess()
{
//init C#操作Access实例解析
}
private static void openConnection()
{
if (conn.State == ConnectionState.Closed)
{
conn.ConnectionString = @"Provider=Microsoft.Jet.OleDb.4.0;
Data Source="+ConfigurationManager.AppSettings["myconn"];
//web.config文件里设定。
comm.Connection = conn;
try
{
conn.Open();
}
catch (Exception e)
{ throw new Exception(e.Message); }
}
}//打开数据库 C#操作Access实例解析
private static void closeConnection()
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
conn.Dispose();
comm.Dispose();
}
}//关闭数据库 C#操作Access实例解析
public static void excuteSql(string sqlstr)
{
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
comm.ExecuteNonQuery();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{ closeConnection(); }
}//执行sql语句 C#操作Access实例解析
public static OleDbDataReader dataReader(string sqlstr)
{
OleDbDataReader dr = null;
try
{
openConnection();
comm.CommandText = sqlstr;
comm.CommandType = CommandType.Text;
dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
try
{
dr.Close();
closeConnection();
}
catch { }
}
return dr;
}
//返回指定sql语句的OleDbDataReader对象,使用时请注意关闭这个对象。
public static void dataReader(string sqlstr,
ref OleDbDataReader dr)
{
try
{
openConnection();
comm.CommandText = sqlstr;
comm.CommandType = CommandType.Text;
dr=comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
try
{
if (dr != null && !dr.IsClosed)
dr.Close();
} //C#操作Access实例解析
catch
{
}
finally
{
closeConnection();
}
}
}
//返回指定sql语句的OleDbDataReader对象,使用时请注意关闭
public static DataSet dataSet(string sqlstr)
{
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(ds);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
return ds;
}//返回指定sql语句的dataset C#操作Access实例解析
public static void dataSet(
string sqlstr, ref DataSet ds)
{
OleDbDataAdapter da = new OleDbDataAdapter();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(ds);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
}//返回指定sql语句的dataset C#操作Access实例解析
public static DataTable dataTable(string sqlstr)
{
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(dt);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
return dt;
}//返回指定sql语句的datatable
public static void dataTable(
string sqlstr, ref DataTable dt)
{
OleDbDataAdapter da = new OleDbDataAdapter();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(dt);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
}//返回指定sql语句的datatable C#操作Access实例解析
public static DataView dataView(string sqlstr)
{
OleDbDataAdapter da = new OleDbDataAdapter();
DataView dv = new DataView();
DataSet ds = new DataSet();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(ds);
dv = ds.Tables[0].DefaultView;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
return dv;
}
//返回指定sql语句的dataview C#操作Access实例解析
}
C#操作Access实例解析的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access有所帮助。