c# 操作Microsoft Access数据库

张春  金牌会员 | 2024-6-14 21:31:16 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 690|帖子 690|积分 2070

数据库结构为:

  1. public static string connting = "数据库路径:如:D:\\xxx.mdb";
  2. //插入
  3.   public bool InsertToFile(string casenumber, int lastrowid, int pagecount)
  4.         {
  5. bool result = true;
  6. try
  7.             {
  8.                 string connString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={connting};";
  9.                 using (var conn = new OleDbConnection(connString))
  10.                 {
  11.                     conn.Open();
  12.                     var sql = @"INSERT INTO [file] (
  13.         [顺序号], [案卷号], [案卷题名], [卷内页数文件], [卷内页数图纸], [卷内页数其他],[备注]) VALUES (
  14.         @value1, @value2, @value3, @value4, @value5, @value6,
  15.         @value7)";
  16.                     using (var cmd = new OleDbCommand(sql, conn))
  17.                     {
  18.                         cmd.Parameters.Add(new OleDbParameter("@value1", OleDbType.Integer) { Value = 1 });
  19.                         cmd.Parameters.Add(new OleDbParameter("@value2", OleDbType.VarChar) { Value = casenumber });
  20.                         cmd.Parameters.Add(new OleDbParameter("@value3", OleDbType.VarChar) { Value = "目录索引" });
  21.                         cmd.Parameters.Add(new OleDbParameter("@value4", OleDbType.Integer) { Value = pagecount });
  22.                         cmd.Parameters.Add(new OleDbParameter("@value5", OleDbType.Integer) { Value = 0 });
  23.                         cmd.Parameters.Add(new OleDbParameter("@value6", OleDbType.VarChar) { Value = "" });
  24.                         cmd.Parameters.Add(new OleDbParameter("@value7", OleDbType.VarChar) { Value = "" });
  25.                         cmd.ExecuteNonQuery();
  26.                     }
  27.                 }
  28.             }
  29.             catch (Exception ex)
  30.             {
  31.                 result = false;
  32.                 Logger.Error("插入[file]表异常!详情:" + ex.Message);
  33.             }
  34.             return result;
  35. }
  36. //查询
  37. public void QueryData()
  38. {
  39.     try
  40.     {
  41.         string connString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={connting};";
  42.         using (var conn = new OleDbConnection(connString))
  43.         {
  44.             conn.Open();
  45.             var sql = "SELECT * FROM [file] WHERE [顺序号] = @orderNumber";
  46.             using (var cmd = new OleDbCommand(sql, conn))
  47.             {
  48.                 cmd.Parameters.Add(new OleDbParameter("@orderNumber", OleDbType.Integer) { Value = 1 });
  49.                 using (var reader = cmd.ExecuteReader())
  50.                 {
  51.                     while (reader.Read())
  52.                     {
  53.                         // 处理查询结果
  54.                         string casenumber = reader.GetString(reader.GetOrdinal("案卷号"));
  55.                         string title = reader.GetString(reader.GetOrdinal("案卷题名"));
  56.                         // 其他列的处理类似
  57.                         
  58.                         Console.WriteLine($"案卷号: {casenumber}, 案卷题名: {title}");
  59.                     }
  60.                 }
  61.             }
  62.         }
  63.     }
  64.     catch (Exception ex)
  65.     {
  66.         Logger.Error("查询[file]表异常!详情:" + ex.Message);
  67.     }
  68. }
  69. //修改
  70. public bool UpdateData(string casenumber, int pagecount)
  71. {
  72.     bool result = true;
  73.     try
  74.     {
  75.         string connString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={connting};";
  76.         using (var conn = new OleDbConnection(connString))
  77.         {
  78.             conn.Open();
  79.             var sql = "UPDATE [file] SET [卷内页数文件] = @pagecount WHERE [案卷号] = @casenumber";
  80.             using (var cmd = new OleDbCommand(sql, conn))
  81.             {
  82.                 cmd.Parameters.Add(new OleDbParameter("@pagecount", OleDbType.Integer) { Value = pagecount });
  83.                 cmd.Parameters.Add(new OleDbParameter("@casenumber", OleDbType.VarChar) { Value = casenumber });
  84.                 int rowsAffected = cmd.ExecuteNonQuery();
  85.                 if (rowsAffected == 0)
  86.                 {
  87.                     result = false;
  88.                     Logger.Error("未找到符合条件的记录!");
  89.                 }
  90.             }
  91.         }
  92.     }
  93.     catch (Exception ex)
  94.     {
  95.         result = false;
  96.         Logger.Error("更新[file]表异常!详情:" + ex.Message);
  97.     }
  98.     return result;
  99. }
复制代码
这里必要注意的点就是字段范例,注意代码中的范例和数据库范例保持同等,否则插入会非常
枚举为:
  1. public enum OleDbType
  2.     {
  3.         BigInt = 20,
  4.         Binary = 0x80,
  5.         Boolean = 11,
  6.         BSTR = 8,
  7.         Char = 129,
  8.         Currency = 6,
  9.         Date = 7,
  10.         DBDate = 133,
  11.         DBTime = 134,
  12.         DBTimeStamp = 135,
  13.         Decimal = 14,
  14.         Double = 5,
  15.         Empty = 0,
  16.         Error = 10,
  17.         Filetime = 0x40,
  18.         Guid = 72,
  19.         IDispatch = 9,
  20.         Integer = 3,
  21.         IUnknown = 13,
  22.         LongVarBinary = 205,
  23.         LongVarChar = 201,
  24.         LongVarWChar = 203,
  25.         Numeric = 131,
  26.         PropVariant = 138,
  27.         Single = 4,
  28.         SmallInt = 2,
  29.         TinyInt = 0x10,
  30.         UnsignedBigInt = 21,
  31.         UnsignedInt = 19,
  32.         UnsignedSmallInt = 18,
  33.         UnsignedTinyInt = 17,
  34.         VarBinary = 204,
  35.         VarChar = 200,
  36.         Variant = 12,
  37.         VarNumeric = 139,
  38.         VarWChar = 202,
  39.         WChar = 130
  40.     }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表