您的位置:首页 > 编程语言 > C#

用C#生成并保存DbF格式的方法

2008-10-07 08:57 232 查看
在开发一个项目时,用户要求数据可以保存到DBF数据库中。因此在结束后将代码简化提出来,希望对大家有些帮助,类代码如下:

using System;

using System.Collections;

using System.Data;

using System.Data.OleDb;

namespace YQ

{

/// <summary>

/// SaveAsYq7 的摘要说明。

/// </summary>

public class SaveAsDbf

{

public SaveAsDbf()

{

//

// TODO: 在此处添加构造函数逻辑

//

}

private string _ErrInfo="";

public string ErrInfo

{

get{return _ErrInfo;}

}

//filename实际上是一个目录

public bool Create(string filename)

{

bool r=false;

string outconnstring=string.Format("Provider = Microsoft.Jet.OLEDB.4.0 ;Data Source ={0};Extended Properties=dBASE IV;",filename);

OleDbConnection outConn=new OleDbConnection(outconnstring);

OleDbCommand dc=outConn.CreateCommand();

try

{

outConn.Open();

dc.CommandType=CommandType.Text;

dc.CommandText="CREATE TABLE table1 (自动编号 int,名称 Char(5),工资 Double)";

dc.ExecuteNonQuery();

r=true;

}

catch(Exception c)

{

_ErrInfo=c.Message;

}

finally

{

dc.Dispose();

if(outConn.State==System.Data.ConnectionState.Open)

outConn.Close();

outConn.Dispose();

}

return r;

}

//filename实际上是一个目录

//RecordInfo类包含自动编号,名称,工资3个属性

public bool Save(string filename,RecordInfo rec)

{

bool r=false;

string outconnstring=string.Format("Provider = Microsoft.Jet.OLEDB.4.0 ;Data Source ={0};Extended Properties=/"dBASE IV/";",filename);

OleDbConnection outConn=new OleDbConnection(outconnstring);

OleDbCommand dc=outConn.CreateCommand();

string tmp="insert into table1(自动编号,名称,工资) values({0},'{1}',{2})";

_ErrInfo="";

try

{

outConn.Open();

dc.CommandText=string.Format(tmp,rec.自动编号,rec.名称,rec.工资);

dc.ExecuteNonQuery();

}

catch(Exception err)

{

_ErrInfo=err.Message;

}

finally

{

if(outConn!=null)

outConn.Close();

dc.Dispose();

outConn.Dispose();

}

return r;

}

}

}

使用方法如下:

FolderBrowserDialog fbd=new FolderBrowserDialog();

fbd.Description="选择dBase IV文件保存的文件夹";

fbd.SelectedPath =System.Environment.CurrentDirectory;

fbd.ShowNewFolderButton=true;

if(fbd.ShowDialog()==DialogResult.OK )

{

if(sy.Create(fbd.SelectedPath))

{

//recData 是数据,这里没有他的详细取值过程,只是一个演示的意思

sy.Save(fbd.SelectedPath,recData);

}

}
这个例子中没有加入完善的错误处理机制,只是起一个抛砖引玉的作用,大家可以根据自己的需要来做。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: