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有所帮助。

C井操作Access数据库知识

相关推荐