C#操作VFP的dbf数据库文件实例

新一篇: js获取网站跟路径

实例中分别使用Oledb和Odbc操作vfp数据库dbf文件,操作包括:读取,增删改。

已测试可直接使用,使用方法:下面代码分两个部分aspx和cs,在vs2005中新建网站项目,分别copy文件到想要的文件中即可。

aspx页面:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<center> <h2>C#操作VFP的dbf数据库文件实例</h2><hr />
<asp:gridview Width="400px" ID="Gridview1" runat="server"></asp:gridview>
<asp:Button ID="btnInti" runat="server" OnClick="btnInti_Click" Text="createTable" />
<br />
<asp:Button ID="btnInsert" runat="server" OnClick="btnInsert_Click" Text="btnInsert" />
<asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Text="btnUpdate" />
<asp:Button ID="btnDelete" runat="server" OnClick="btnDelete_Click" Text="btnDelete" />
<br />
<asp:Button ID="btnShowWithOledb" runat="server" OnClick="btnShowWithOledb_Click"
Text="showWithOledb" />
<asp:Button ID="btnShowWithOdbc" runat="server" OnClick="btnShowWithOdbc_Click" Text="showWithOdbc" />
</center>
</div>
<span style="color: red">* 首先:在d盘下创建testDB的VFP数据库.然后可使用vs2005测试.
其中必须要先创建表,即:点击createTable按钮。</span>
</form>
</body>
</html>

cs代码:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Odbc;
using System.Data.OleDb; public partial class _Default : System.Web.UI.Page
{
/// <summary>
/// 数据文件
/// </summary>
private static string table = @"D:\User.dbf"; /// <summary>
/// Odbc链接字符串 ,其中SourceDB可以是dbf文件所在的目录也可以制定到文件,作用是一样的,如:SourceDB=d:\;或SourceDB==D:\Allart.dbf
/// </summary>
private static string strConn = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=d:\;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO"; /// <summary>
/// Oledb链接字符串
/// 1,到微软网站下载<Microsoft OLE DB Provider for Visual FoxPro 9.0>并安装,这样oledb才能识别provider=VFPOLEDB.1,
/// http://www.microsoft.com/downloads/thankyou.aspx?familyId=e1a87d8f-2d58-491f-a0fa-95a3289c5fd4&displayLang=en
/// 2,其中SourceDB可以是dbf文件所在的目录也可以制定到文件,作用是一样的,如:data source=d:\;或data source==D:\Allart.dbf
/// </summary>
private static string strOledbConn = @"provider=VFPOLEDB.1;data source=d:\;user id=admin;password="; protected void Page_Load(object sender, EventArgs e)
{ }
/// <summary>
/// 初始化vfp数据库,创建user表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnInti_Click(object sender, EventArgs e)
{
string strOledbConn = @"provider=VFPOLEDB.1;data source=d:\testDB.dbc;user id=admin;password=";
OleDbConnection conn = new OleDbConnection(strOledbConn);
OleDbCommand cmd = new OleDbCommand();
string sql = "CREATE TABLE User (ID c(6) ,Name C(20),BirthDay t,Salary n(6,2))";
cmd.CommandText = sql;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
showDataWithOdbc();
Response.Write("表格生成成功!");
} /// <summary>
/// 插入数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnInsert_Click(object sender, EventArgs e)
{
OdbcConnection conn = new OdbcConnection(strConn);
OdbcCommand cmd = new OdbcCommand();
//字符c,时间t,数字n
string sql = "insert into " + table + "(id,name,birthday,salary) values('1','haha',{^1985-09-10},3300.1)";
cmd.CommandText = sql;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
showDataWithOdbc();
Response.Write("表格插入成功!");
} /// <summary>
/// 更新数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUpdate_Click(object sender, EventArgs e)
{ OdbcConnection conn = new OdbcConnection(strConn);
OdbcCommand cmd = new OdbcCommand();
string sql = "update " + table + " set ID ='2',name='haha2'";
cmd.CommandText = sql;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
showDataWithOdbc();
Response.Write("表格更新成功!");
} /// <summary>
/// 删除数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDelete_Click(object sender, EventArgs e)
{ OdbcConnection conn = new OdbcConnection(strConn);
OdbcCommand cmd = new OdbcCommand();
string sql = "delete from " + table;
cmd.CommandText = sql;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
showDataWithOdbc();
Response.Write("表格删除成功!");
} /// <summary>
/// 使用Oledb显示数据中数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnShowWithOledb_Click(object sender, EventArgs e)
{
showDataWithOledb();
Response.Write("成功调用Oledb显示数据!");
}
/// <summary>
/// 使用Odbc显示数据中数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnShowWithOdbc_Click(object sender, EventArgs e)
{
showDataWithOdbc();
Response.Write("成功调用Odbc显示数据!");
} /// <summary>
/// 使用Odbc驱动链接数据库并显示数据
/// </summary>
private void showDataWithOdbc()
{
OdbcConnection conn = new OdbcConnection();
conn.ConnectionString = strConn;
conn.Open();
string sql = @"select * from " + table;
OdbcDataAdapter da = new OdbcDataAdapter(sql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
Gridview1.DataSource = dt.DefaultView;
Gridview1.DataBind();
conn.Close();
} /// <summary>
/// 使用OleDb驱动链接数据库并显示数据
/// </summary>
private void showDataWithOledb()
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = strOledbConn;
conn.Open();
string sql = @"select * from " + table ;
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
Gridview1.DataSource = dt.DefaultView;
Gridview1.DataBind();
conn.Close();
} }

C#操作VFP的dbf数据库文件实例的更多相关文章

  1. C#如何打开DBF数据库文件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. LINUX学习笔记——LINUX下EXP命令全库备份数据库文件

    LINUX下EXP命令全库备份数据库文件 1)建立备份目录,目录操作权限授权给Oracle用户 mkdir /backup  --创建backup文件夹 cd  /   --进入cd语句 ls  -l ...

  3. linux下rm误删除数据库文件的恢复方法

    在linux redhat 5.4版本,rm误删除数据库文件的恢复过程分享.测试没有问题,可用. 1.首先测试rm 误删除数据库文件 [oracle@primary dbwdn]$ ll total ...

  4. Android GreenDao操作外部DB数据库文件

    1.背景 所谓外部数据库文件此处指的就是一个在外部单独创建的db文件,假设有这么一个场景,我们项目中有一些本地数据,不需要接口去获取的(不需要进行网络操作),写死的数据,比如全国各个省各个市的一些基本 ...

  5. Qt数据库 QSqlTableModel实例操作(转)

    本文介绍的是Qt数据库 QSqlTableModel实例操作,详细操作请先来看内容.与上篇内容衔接着,不顾本文也有关于上篇内容的链接. Qt数据库 QSqlTableModel实例操作是本文所介绍的内 ...

  6. 此数据库文件与当前sql server实例不兼容

    在vs2015导入mdf数据库文件时提示:此数据库文件与当前sql server实例不兼容. mdf文件的版本是SQL SERVER 2005的,而VS2015自带的数据库是LocalDB,直接导入该 ...

  7. android数据库操作之直接读取db文件

    在对数据库操作时,常用的有两种方法: 1.在代码中建库.建表: 2.直接将相关库.表建立好,将db文件拷贝至assets目录下:     现在来看看第二种方法:   private String Ge ...

  8. 创建WRAPPER时, SQL20076N 未对指定的操作启用数据库的实例。

    您可以通过运行DB2 UPDATE DBM CFG USING FEDERATED YES来设置这个参数.修改这个参数后,必须重新启动实例才会生效(DB2STOP/DB2START).所以你会出现你的 ...

  9. Oracle数据库文件路径变更

    环境:RHEL 6.4 + Oracle 11.2.0.3 情景一:只是部分普通数据文件迁移,可以在线操作. 1.将对应表空间offline,移动数据文件到新路径 2.数据文件alter databa ...

随机推荐

  1. SGU 110. Dungeon 计算几何 难度:3

    110. Dungeon time limit per test: 0.25 sec. memory limit per test: 4096 KB The mission of space expl ...

  2. 使用Jenkins自动编译我的.net 项目

    1.Jenkins是什么? Jenkins是一个可扩展的持续集成的引擎,主要用于持续自动的构建.测试软件项目 监控一些定时执行的任务.   2.安装配置 最新的Jenkins 安装包可以从这里下载:h ...

  3. 第三视角团队:项目UML设计(团队)

    项目UML设计(团队) 团队信息 团队名:第三视角 各成员学号及姓名 姓名 学号 博客链接 张扬(组长) 031602345 http://www.cnblogs.com/sxZhangYang/p/ ...

  4. 软工作业No.6 甜美女孩第四周

    各成员在Alpha阶段认领的任务 成员 Alpha阶段认领的任务 整个项目预期的任务量 曾祎祺 安排每日任务,每晚总结 16% 邓画月 基础2048+自定义 16% 梁佩诗 负责界面 16% 何颖琪 ...

  5. 软工作业No.5 甜美女孩第三周yep

    需求&原型改进: 1. 针对课堂讨论环节老师和其他组的问题及建议,对修改选题及需求进行修改 (5分) 没有问题及建议 2. 修改完善上周提交的需求规格说明书(10分) 上周的<需求规格说 ...

  6. VMware Station NAT上网模式配置

  7. DevExpress v17.2新版亮点—WPF篇(四)

    DevExpress年终击穿底价,单套授权低至67折!仅剩最后6天!查看详情>>> 用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内 ...

  8. 漂亮的各种弹出框 sweet alert

    Sweet Alert 是一个替代传统的 Alert 的提示效果.SweetAlert 自动居中对齐在页面中央,不管您使用的是台式电脑,手机或平板电脑看起来效果都很棒. 还带下拉 几种 动画效果 弹窗 ...

  9. art.dialog 使用说明

    Js代码 2. 传入HTMLElement   备注:1.元素不是复制而是完整移动到对话框中,所以原有的事件与属性都将会保留 2.如果隐藏元素被传入到对话框,会设置display:block属性显示该 ...

  10. Python模块 实现过渡性模块重载

    本文是在阅读Python 学习手册后  感觉比较不错的一个实现模块重载的一个模块,该模块可以实现对已经加载在运行程序中的模块实现重新加载,并且该模块可以递归的实现对要重新加载的模块内所引用的其它模块的 ...