C#操作VFP的dbf数据库文件实例收藏
新一篇: js获取网站跟路径
实例中分别使用Oledb和Odbc操作vfp数据库dbf文件,操作包括:读取,增删改。
已测试可直接使用,使用方法:下面代码分两个部分aspx和cs,在vs2005中新建网站项目,分别copy文件到想要的文件中即可。
aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<
HTML XMLNS="W3.ORG xhtml? 1999>
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
{
///
/// 数据文件
/// private static string table = @"D:\User.dbf";
///
/// Odbc链接字符串 ,其中SourceDB可以是dbf文件所在的目录也可以制定到文件,作用是一样的,如:SourceDB=d:\;或SourceDB==D:\Allart.dbf
/// private static string strConn = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=d:\;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";
///
/// Oledb链接字符串
/// 1,到微软网站下载并安装,这样oledb才能识别provider=VFPOLEDB.1,
/// microsoft/downloads/thankyou.aspx?familyId=e1a87d8f-2d58-491f-a0fa-95a3289c5fd4&;display
Lang=en
/// 2,其中SourceDB可以是dbf文件所在的目录也可以制定到文件,作用是一样的,如:data source=d:\;或data source==D:\Allart.dbf
/// private static string strOledbConn = @"provider=VFPOLEDB.1;data source=d:\;user id=admin;password=";
protected void Page_Load(object sender, EventArgs e)
{
}
///
/// 初始化vfp数据库,创建user表
/// ///
///
protected void btnInti_Click(object sender, EventArgs e)
{
string strOledbConn = @"provider=VFPOLEDB.1;data source=d:\testDB.dbc;user id=admin;pass
word=";
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("表格生成成功!");
}
///
/// 插入数据
/// ///
///
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("表格插入成功!");
}
///
/// 更新数据
/// ///
///
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("表格更新成功!");
}
///
/// 删除数据
/// ///
///
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("
表格删除成功!");
}
///
/// 使用Oledb显示数据中数据
/// ///
///
protected void btnShowWithOledb_Click(object sender, EventArgs e)
{
showDataWithOledb();
Response.Write("成功调用Oledb显示数据!");
}
///
/// 使用Odbc显示数据中数据
/// ///
///
protected void btnShowWithOdbc_Click(object sender, EventArgs e)
{
showDataWithOdbc();
Response.Write("成功调用Odbc显示数据!");
}
///
/// 使用Odbc驱动链接数据库并显示数据
/// 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;
Gri