C#创建Access数据库、表格、并向表格中添加数据(转)

it2024-01-14  63

本文主要演示如何通过C#创建Access数据库以及表格,需要执行演示代码,必须添加两个扩展程序包(COM组件):

Microsoft ADO Ext. 2.8 for DDL and SecurityMicrosoft ActiveX Data Objects 2.8 Library

如下图:

效果图:


主要代码:

public class Access { private static OleDbConnection accessConnection; //Access数据库连接 private static string tableName; private static List<string> dataShareField = new List<string>(); //共享字段 /************************************************************************/ /* 在指定目录下创建mdb数据库 * 应该先判断文件是否存在,如果不存在,就直接创建,如果存在,则提示用户是否删除重建 /************************************************************************/ public static bool CreateAccessDb(string filePath) { ADOX.Catalog catalog = new Catalog(); if (!File.Exists(filePath)) { try { catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Jet OLEDB:Engine Type=5"); } catch (System.Exception e) { Trace.TraceWarning("创建Access数据库出错,测试数据不能保存"); return false; } } return true; } //在指定的Access数据库中穿点指定的表格 public static bool CreateAccessTable(string filePath, string tbName, List<string> colums) { ADOX.Catalog catalog = new Catalog(); //数据库文件不存在则创建 if (!File.Exists(filePath)) { try { catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Jet OLEDB:Engine Type=5"); } catch (System.Exception e) { Trace.TraceWarning("创建Access表出错" , e); return false; } } ADODB.Connection cn = new ADODB.Connection(); try { cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath, null, null, -1); } catch (System.Exception ex) { Trace.TraceWarning("Access连接打开失败" , ex); return false; } catalog.ActiveConnection = cn; ADOX.Table table = new ADOX.Table(); table.ParentCatalog = catalog; table.Name = tbName; //公共字段 { colums.Insert(0, "test_time"); colums.Insert(1, "circuit_batches"); colums.Insert(2, "function"); colums.Insert(3, "ins_no"); colums.Insert(4, "fixture_no"); colums.Insert(5, "testos_no"); } foreach (var column in colums) { ADOX.ColumnClass col = new ADOX.ColumnClass(); col.ParentCatalog = catalog; col.Name = column; col.Attributes = ColumnAttributesEnum.adColNullable; //允许空值 table.Columns.Append(col, DataTypeEnum.adVarWChar, 50); //默认数据类型和字段大小 } catalog.Tables.Append(table); accessConnection = new OleDbConnection(cn.ConnectionString); tableName = tbName; try { accessConnection.Open(); } catch (System.Exception ex) { Trace.TraceWarning( "Access连接打开失败" , ex); return false; } cn.Close(); return true; } public static bool AppendData2Access(Dictionary<string, object> data) { if (data.Count > 0) { string fields = null; string values = null; string sql = null; foreach (var item in data) { fields += item.Key.ToString() + ','; values += string.Format("'{0}'", item.Value.ToString()) + ','; } fields = fields.Remove(fields.Length - 1, 1); values = values.Remove(values.Length - 1, 1); sql = string.Format("insert into {0} ({1}) values ({2})", tableName, fields, values); OleDbCommand cmd = new OleDbCommand(sql, accessConnection); cmd.ExecuteNonQuery(); } return true; } public static void ClosedbConnection() { accessConnection.Close(); } }

函数说明

1、 public static bool CreateAccessDb(string filePath) 功能:创建Access数据库到指定的目录。2、 public static bool CreateAccessTable(string filePath, string tbName, List colums) 功能:在指定的Access数据库中创建指定指定名称的表格和指定列。3、 public static bool AppendData2Access(Dictionary\<\string, object> data) 功能:向表格中添加数据.4、 public static void ClosedbConnection() 功能:关闭连接。

最新回复(0)