1、Access数据库连接字符串,不同版本的版本号不一样,
accessname即access数据库表的路径
switch (kzm) { case ".mdb": constr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", accessname); break; case ".accdb": constr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0}", accessname); break; }
2、 获取access表结构数据(字段,字段类型)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/// <summary> /// 获取access表结构数据(字段,字段类型) /// </summary> /// <param name="tablename">表名</param> /// <returns></returns> public static Dictionary<string, string> GetAccessZDType(string tablename, string kzm, string accessname) { Dictionary<string, string> dic = new Dictionary<string, string>(); string zdtp = ""; string constr = CommonClass.GetAccessDifferentVersion(kzm, accessname); OleDbConnection connection = new OleDbConnection(constr); connection.Open(); //获取access库表里的字段和相关字段信息 DataTable table = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tablename, null }); foreach (DataRow row in table.Rows) { string zd = row["COLUMN_NAME"].ToString(); //字段名称 int lx = int.Parse(row["DATA_TYPE"].ToString()); //字段类型 switch (lx) { case 2: zdtp = "int"; break; case 3: zdtp = "int"; break; case 4: zdtp = "Single"; break; case 5: zdtp = "double"; break; case 6: zdtp = "decimal"; break; case 7: zdtp = "DateTime"; break; case 11: zdtp = "bool"; break; case 17: zdtp = "byte"; break; case 72: zdtp = "string"; break; case 130: zdtp = "string"; break; case 131: zdtp = "decimal"; break; case 128: zdtp = "string"; break; default: zdtp = "string"; break; } dic.Add(zd, zdtp); } connection.Close(); connection.Dispose(); return dic; }
3、Access删除语句:Delete From 表名 Where ...
需要注意的是:日期格式,因为我再删除时,有些表主键是日期字段,所以当时试了很多种方法,怎么格式化都不成功,真是阿西吧!!
最后!终于百度瞥到了某位大神的留言:access日期格式不能用''单引号,必须是#2020/10/20#这样的方式,以#字符括起来才可以,天呐!!!!!!!
完整语句:Delete From A Where x='你好' and RQ=#2020/08/23# and age=18
记录以备用!