C#导出Visual FoxPro(.dbf)数据库文件
来源:互联网 发布:敏捷网络是什么 编辑:程序博客网 时间:2024/05/16 04:48
前些天由于客户需求,C#开发的程序需要做一个导出Visual FoxPro(.dbf)数据库文件的功能。
不会呀,从网上找了好长时间,终于被我找到了,自己稍作修改,经测试,可以导出,并且导出的文件可以正常打开,前提是已经安装了Visual FoxPro
相关代码:
private void simpleButton1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
DataColumn dc = new DataColumn();
dc.ColumnName = "CH";
dt.Columns.Add(dc);
DataRow row = dt.NewRow();
row["CH"] = "1234567";
dt.Rows.Add(row);
dt.TableName = "testTable";
string eCode = "010";
string eCongtent = "文件导出失败";
new BaseBLL().CreatFile(dt, out eCode, out eCongtent, @"D:\");
}
public int ExcCommandText(string sqlString,out string errCode,out string errMsg)
{
string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\;Extended Properties=dBASE IV;User ID=Admin;Password=";
OleDbConnection olecon = new OleDbConnection(connStr.ToString());
OleDbCommand sda = new OleDbCommand();
sda.CommandText = sqlString;
sda.Connection = olecon;
int result = -1;
errCode = "-1";
errMsg = "未执行";
try
{
using (olecon)
{
olecon.Open();
result = sda.ExecuteNonQuery();
errCode = "1";
errMsg = "执行成功";
olecon.Close();
}
}
catch
{
result = -2;
errCode = "0";
errMsg = "执行失败";
}
return result;
}
#region Creat file
/// <summary>
/// 创建数据文件
/// </summary>
/// <param name="dt">需要创建的数据</param>
/// <param name="errMsg"></param>
/// <returns></returns>
public int CreatFile(DataTable dt, out string errCode, out string errMsg,string filePath)
{
errCode = null; errMsg = null; int rtn = 0;
try
{
//需创建的文件名称
string fileName = dt.TableName + ".dbf";
//判断文件是否存在
DirectoryInfo dir = new DirectoryInfo(filePath);
if (dir != null)
{
if (dir.GetFiles(fileName).Length > 0)
{
//已经存在则删除原有数据
rtn = this.ExcCommandText("drop table " + dt.TableName, out errCode, out errMsg);
if (rtn != 0)
{
return rtn;
}
}
}
//构建创建文件数据结构语句
string sqlCreat = "create table " + dt.TableName + "({0})";
string columns = "";
foreach (DataColumn col in dt.Columns)
{
columns += col.ColumnName;
columns += " char(100),";
}
columns = columns.Remove(columns.Length - 1, 1);
sqlCreat = string.Format(sqlCreat, columns);
rtn = ExcCommandText(sqlCreat, out errCode, out errMsg);
if (rtn != 0)
{
return rtn;
}
//导入数据
foreach (DataRow row in dt.Rows)
{
string sqlInsert = "insert into " + dt.TableName + " values({0})";
string invalues = "";
foreach (DataColumn col in dt.Columns)
{
invalues += "'" + row[col].ToString() + "',";
}
invalues = invalues.Remove(invalues.Length - 1, 1);
sqlInsert = string.Format(sqlInsert, invalues);
rtn = ExcCommandText(sqlInsert, out errCode, out errMsg);
if (rtn != 0)
{
return rtn;
}
}
return rtn;
}
catch (System.Exception e)
{
errMsg = e.Message + "|" + e.StackTrace;
return -1;
}
}
#endregion
- C#导出Visual FoxPro(.dbf)数据库文件
- C#读取Foxpro数据库文件
- c#操作DBF数据库文件
- c#操作DBF数据库文件
- C# 操作本地dbf数据库文件
- C#操作VFP的dbf数据库文件实例
- .NET读取dbf的方式,C#读取foxpro数据库
- 求C#连接Visual FoxPro代码
- C#数据库连接字符串——Visual FoxPro
- .NET读取foxpro dbf文件
- .NET创建FoxPro DBF文件
- Delphi创建Foxpro(DBF)文件
- c# DBF数据库导入导出实例
- C# 进行DBF的导入导出
- 读取foxpro格式的dbf文件
- [数据库连接字符串] DBF / FoxPro 连接字符串
- jsp读取foxpro的dbf文件
- FOXPRO DBF 导入 SQL Server表
- 桌面底部的任务栏不见了的时候应该怎么办
- js和jquery插件网址
- Unity3D 模型制作规范
- Mac下编写Ndk(二):编写jni文件
- python 如何能否自定义模块路径? 添加自定义模块 函数 python
- C#导出Visual FoxPro(.dbf)数据库文件
- Android电话来电流程源码分析
- Programmer’s dilemma
- Oracle 数据的导入导出
- JavaScript世界的一等公民 - 函数
- 关于Ant的全面了解
- Cocos2d-x Sqlite3数据存储
- 虚拟机中无法导入USB串口问题
- 条件编译