纳金网

标题: access数据库的简单配置及使用 [打印本页]

作者: 王者再临    时间: 2014-10-18 03:27
标题: access数据库的简单配置及使用
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. using System.Data;
  7. using System.Data.OleDb;//必须引用的命名空间
  8. using ADOX;//必须引用的命名空间
  9. using System.Windows.Forms;

  10. namespace xxxxxxxxx
  11. {
  12.     /// <summary>
  13.     /// 数据库管理,存储信息包括指纹信息和个人信息,查询主要以指纹查询和身份证查询为主
  14.     /// 显示数据则不包括指纹信息
  15.     /// </summary>
  16.     public class AccessManager
  17.     {
  18.         #region 变量声明
  19.         private const string filePath = @"C:\UserInfor.accdb";
  20.         private string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath;
  21.         private string sql = null;
  22.         OleDbConnection oleConn = null;
  23.         OleDbCommand oleCmd = null;
  24.         #endregion

  25.         public void CreateAccess()//新建数据库
  26.         {
  27.             if (!File.Exists(filePath))
  28.             {
  29.                 ADOX.Catalog cata = new Catalog();
  30.                 try
  31.                 {
  32.                     cata.Create(connStr);
  33.                     Debug.Log("创建access数据库:User");
  34.                 }
  35.                 catch (Exception ex)
  36.                 {
  37.                     Debug.Log("创建数据库出错\n" + ex.ToString());
  38.                     MessageBox.Show("创建数据库出错\n" + ex.ToString());
  39.                 }
  40.                 oleConn = new OleDbConnection(connStr);
  41.                 oleCmd = new OleDbCommand();
  42.                 oleCmd.Connection = oleConn;
  43.                 oleConn.Open();
  44.                 sql = @"CREATE TABLE UserTabel(身份证 CHAR(20) NOT NULL PRIMARY KEY,姓名 CHAR(10),性别 CHAR(2),年龄 CHAR(4),电话 CHAR(20))";
  45.                 oleCmd.CommandText = sql;
  46.                 oleCmd.ExecuteNonQuery();
  47.                 Debug.Log("创建表1:UserTabel");

  48.                 oleConn.Close();
  49.                 oleConn.Dispose();

  50.             }
  51.         }
  52.         /// <summary>
  53.         /// 刷新数据,只显示人物信息,不显示指纹数据
  54.         /// </summary>
  55.         /// <returns></returns>
  56.         public DataTable RefreshDataView()
  57.         {
  58.             try
  59.             {
  60.                 oleConn = new OleDbConnection(connStr);
  61.                 DataSet set = new DataSet();
  62.                 string s = @"SELECT 身份证,姓名,性别,年龄,电话 FROM UserTabel";
  63.                 OleDbDataAdapter oleAdp = new OleDbDataAdapter(s, oleConn);
  64.                 oleAdp.Fill(set, "UserTabel");
  65.                 oleConn.Close();
  66.                 oleConn.Dispose();
  67.                 Debug.Log("刷新数据库");
  68.                 return set.Tables["UserTabel"];
  69.             }
  70.             catch (Exception ex)
  71.             {
  72.                 Debug.Log("刷新数据出错\n" + ex.ToString());
  73.                 MessageBox.Show(ex.ToString());
  74.                 return null;
  75.             }
  76.         }

  77.         /// <summary>
  78.         /// 插入数据
  79.         /// </summary>
  80.         /// <param name="card">身份证索引</param>
  81.         /// <param name="name">姓名</param>
  82.         /// <param name="sex">性别</param>
  83.         /// <param name="age">年龄</param>
  84.         /// <param name="tel">电话</param>
  85.         public void InsertData(string card, string name, string sex, string age, string tel)
  86.         {
  87.             try
  88.             {
  89.                 oleConn = new OleDbConnection(connStr);
  90.                 oleCmd = new OleDbCommand();

  91.                 sql = string.Format("INSERT INTO UserTabel(身份证,姓名,性别,年龄,电话) VALUES({0},{1},{2},{3},{4})", "'" + card + "'", "'" + name + "'", "'" + sex + "'", "'" + age + "'", "'" + tel + "'");
  92.                 oleCmd.Connection = oleConn;
  93.                 oleCmd.CommandText = sql;
  94.                 oleConn.Open();

  95.                 oleCmd.ExecuteNonQuery();
  96.                 Debug.Log("新插入一条数据");
  97.                 oleConn.Close();
  98.                 oleConn.Dispose();
  99.             }
  100.             catch (Exception ex)
  101.             {
  102.                 Debug.Log("插入数据出错\n" + ex.ToString());
  103.                 MessageBox.Show("插入数据出错\n" + ex.ToString());
  104.             }
  105.         }
  106.         /// <summary>
  107.         /// 根据身份证查找数据
  108.         /// </summary>
  109.         /// <param name="card"></param>
  110.         /// <returns></returns>
  111.         public string FindDataByCard(string card)
  112.         {
  113.             try
  114.             {
  115.                 oleConn = new OleDbConnection(connStr);
  116.                 sql = string.Format("SELECT 身份证,姓名,性别,年龄,电话 FROM UserTabel WHERE 身份证='{0}'", card);
  117.                 DataSet set = new DataSet();
  118.                 OleDbDataAdapter da = new OleDbDataAdapter(sql, oleConn);
  119.                 da.Fill(set, "UserTabel");
  120.                 Debug.Log("查询数据");
  121.                 oleConn.Close();
  122.                 oleConn.Dispose();
  123.                 string infor = null;
  124.                 foreach (DataColumn c in set.Tables["UserTabel"].Columns)
  125.                 {
  126.                     foreach (DataRow r in set.Tables["UserTabel"].Rows)//UserTabel
  127.                     {
  128.                         infor += r[c].ToString() + "|";
  129.                         Debug.Log(r[c].ToString());
  130.                     }
  131.                 }
  132.                 return infor;

  133.             }
  134.             catch (Exception ex)
  135.             {
  136.                 Debug.Log("查询数据出错\n" + ex.ToString());
  137.                 MessageBox.Show("查询数据出错\n" + ex.ToString());
  138.                 return null;
  139.             }

  140.         }

  141.         /// <summary>
  142.         /// 根据身份证删除数据
  143.         /// </summary>
  144.         /// <param name="id"></param>
  145.         public void DeleteDataByCard(string card)
  146.         {
  147.             try
  148.             {
  149.                 oleConn = new OleDbConnection(connStr);
  150.                 oleCmd = new OleDbCommand();
  151.                 oleCmd.Connection = oleConn;
  152.                 sql = string.Format("DELETE * FROM UserTabel WHERE 身份证='{0}'", card);
  153.                 oleCmd.CommandText = sql;

  154.                 oleConn.Open();

  155.                 oleCmd.ExecuteNonQuery();
  156.                 Debug.Log("删除数据");
  157.                 oleConn.Close();
  158.                 oleConn.Dispose();
  159.                 oleCmd.Dispose();
  160.             }
  161.             catch(Exception ex)
  162.             {
  163.                 Debug.Log("删除数据出错" + ex.ToString());
  164.                 MessageBox.Show("删除数据出错" + ex.ToString());
  165.             }

  166.         }
  167.     }
  168. }
复制代码

作者: hyui    时间: 2014-10-18 03:54
Nice to know this !
作者: huhumark    时间: 2014-10-18 10:52
用Sqlite会好用很多的
作者: 我不再年轻    时间: 2014-11-6 19:55
学习了, 很实用的知识!




欢迎光临 纳金网 (http://old.narkii.com/club/) Powered by Discuz! X2.5