引用集:
using System.Data.OleDb;

复制代码 代码如下:

static string exePath = System.Environment.CurrentDirectory;//本程序所在路径

//创建连接对象
OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" + exePath + @"\文件名.mdb");

1.和查询有关的,如获取表数据(包括所谓的“刷新”和“连接数据库”)、按条件查询,都是用的 OleDbDataAdapter

复制代码 代码如下:

private void 获取数据表/查询()
{
    conn.Open();

    //获取数据表
    //string sql = "select * from 表名 order by 字段1";
    //查询
    string sql = "select * from 表名 where 字段2="...;

    OleDbDataAdapter da = new OleDbDataAdapter(sql, conn); //创建适配对象
    DataTable dt = new DataTable(); //新建表对象
    da.Fill(dt); //用适配对象填充表对象
    dataGridView1.DataSource = dt; //将表对象作为DataGridView的数据源

    conn.Close();
}

其中“获取数据表”属于频繁被嵌套调用的方法,所以应去掉头尾的conn.Open和Close,以免和其他方法中的Open发生累加从而报错。

2.凡涉及修改表数据的,如增、删、保存修改,都是用 OleDbCommand

复制代码 代码如下:

private void 增/删/改()
{
     conn.Open();

     //增
     string sql = "insert into 表名(字段1,字段2,字段3,字段4)values(...)";
     //删
     //string sql = "delete from 表名 where 字段1="...;
     //改
     //string sql = "update student set 学号=" ...;

     OleDbCommand comm = new OleDbCommand(sql, conn);

     comm.ExecuteNonQuery();

     conn.Close();
}


其中ExecuteNonQuery被成功更改的元组数量,所以comm.ExecuteNonQuery()也可以改造为判断,提示用户成功或失败。

复制代码 代码如下:

int i = comm.ExecuteNonQuery();
if (i > 0)
{
      MessageBox.Show("添加数据成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
      MessageBox.Show("添加失败!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

3.对DataGridView中数据更改的保存

复制代码 代码如下:


private void saveData2()
{
     dataGridView1.EndEdit();

     string sql = "select * from 表名";

     OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);

     OleDbCommandBuilder bld = new OleDbCommandBuilder(da);
     da.UpdateCommand = bld.GetUpdateCommand();

        //把DataGridView赋值给dataTbale。(DataTable)的意思是类型转换,前提是后面紧跟着的东西要能转换成dataTable类型
     DataTable dt = (DataTable)dataGridView1.DataSource;

     da.Update(dt);
     dt.AcceptChanges();

     conn.Close();
}

posted @ 2016-06-01 15:59 沉默的大多数人 阅读(1088) 评论(0) 推荐(0)
摘要: using System; using System.Data; using System.Data.OleDb; namespace AccessDb { /**//// <summary> /// AccessDb 的摘要说明,以下信息请完整保留 /// 请在数据传递完毕后调用Close()方法 阅读全文
posted @ 2016-06-01 12:43 沉默的大多数人 阅读(1884) 评论(0) 推荐(0)
摘要: 正则表达式 - 语法 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的 阅读全文
posted @ 2016-06-01 12:18 沉默的大多数人 阅读(120) 评论(0) 推荐(0)
摘要: HtmlAgilityPack 是一个灵活的Html解析器,支持LinQ,它可以让分析HTML就像分析XML一样简单,使用时首先要得到html,然后对节点进行操作即可. HtmlAgilityPack开源地址 下载地址 常用的方法 HtmlDocument类代表html文档,例: HtmlDocum 阅读全文
posted @ 2016-05-31 16:01 沉默的大多数人 阅读(336) 评论(0) 推荐(0)
摘要: 1.正则表达式基本语法 两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$":表示所以以"of despair"结尾的字符串;"^abc$":表示开始和 阅读全文
posted @ 2016-05-31 11:14 沉默的大多数人 阅读(151) 评论(0) 推荐(0)
摘要: 近来的项目中要实现能够在windows service中调用指定项目的链接页面。由于访问页面时候使用的是ie浏览器或其他浏览器,所以想起用webclient类。 如果只想从特定的URI请求文件,则使用WebClient,它是最简单的.NET类,它只用一两条命令执行基本操作,.NET FRAMEWOR 阅读全文
posted @ 2016-05-31 10:19 沉默的大多数人 阅读(1232) 评论(0) 推荐(0)
摘要: HtmlAgilityPack中的HtmlNode类与XmlNode类差不多,提供的功能也大同小异。下面来看看该类提供功能。 一、静态属性 二、属性 Attributes 获取节点的属性集合ChildNodes 获取子节点集合(包括文本节点)Closed 该节点是否已关闭(</xxx>)Closin 阅读全文
posted @ 2016-05-31 10:14 沉默的大多数人 阅读(239) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示