日期:2008-07-21  浏览次数:20433 次

以下的源码里分别给出了将DBF,XLS,XML,MDB文件导入C#DataGrid的方法,供各位参考。

//PutInDataSet.cs的源码

using System;
using System.Data.Odbc;
using System.Data.OleDb;
using System.Data;
using System.Collections;

namespace PutInDataSet
{
/// <summary>
/// DataSetTransIn 的摘要说明。
/// </summary>
public class PutInDataSet
{
/// <summary>
/// 传入的文件变量
/// </summary>
private DataSet my_Ds;//存放文件的数据集
private string my_Err;//错误信息
private string my_TableName;//传入的文件名
private TableType my_TableType;//传入的文件类型
private string my_TablePath;//传入的文件路径
private int my_TableIndex;//表的索引
OleDbCommandBuilder my_Builder;//命令串

/// <summary>
/// 数据库连接变量
/// </summary>
private string my_StrConnection;//连接字符串
private string my_StrSelect;//select语句

/// <summary>
/// 可以处理的文件类型
/// </summary>
public enum TableType
{
MDB,XLS,DBF,DOC,TXT,XML,HTML
}

public PutInDataSet(string TablePath,string TableName,TableType TableType)
{
///<summary>
///获得传入的路径,文件名及文件类型;
///</summary>
this.my_TablePath=TablePath;//路径
this.my_TableName=TableName;//文件名
this.my_TableType=TableType;//文件类型
}

public DataSet Convert()
{
DataSet iRtn_Ds=new DataSet();
switch (this.my_TableType)
{
case TableType.DBF:
iRtn_Ds = this.DbfToDs();
break;

case TableType.MDB:
iRtn_Ds = this.MdbToDs();
break;

case TableType.XLS:
iRtn_Ds = this.XlsToDs();
break;

case TableType.XML:
iRtn_Ds = this.XMLToDs();
break;
}
return iRtn_Ds;
}

///<summary>
///将DBF文件放入DataSet
///</summary>
private DataSet DbfToDs()
{
//数据库连接定义
OdbcConnection my_conn; //数据连接
OdbcDataAdapter my_Adapter;//数据适配器

//数据库连接
this.my_StrConnection= "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + this.my_TablePath;
this.my_StrSelect="SELECT * FROM " + this.my_TableName;
my_conn = new OdbcConnection(this.my_StrConnection);
my_conn.Open();
my_Adapter = new OdbcDataAdapter(this.my_StrSelect,my_conn);
this.my_Ds=new DataSet();

//填充数据集
my_Adapter.Fill(this.my_Ds,this.my_TableName);
return this.my_Ds;
}

///<summary>
///将MDB文件放入DataSet
///</summary>
private DataSet MdbToDs()
{
//数据库连接定义
OleDbConnection my_conn;
OleDbDataAdapter my_Adapter;

//数据库连接
this.my_StrConnection= "Provider=Microsoft.JET.OLEDB.4.0;data source=" + this.my_TablePath;
this.my_StrSelect="SELECT * FROM " + this.my_TableName;
my_conn = new OleDbConnection(this.my_StrConnection);
my_conn.Open();
my_Adapter = new OleDbDataAdapter(this.my_StrSelect,my_conn);
this.my_Ds=new DataSet();

//填充数据集
my_Adapter.Fill(this.my_Ds,this.my_TableName);
return this.my_Ds;
}

///<summary>
///将XML文件放入DataSet
///</summary>
private DataSet XMLToDs()
{

//填充数据集
this.my_Ds=new DataSet();
this.my_Ds.ReadXML(this.my_TablePath+this.my_TableName,XMLReadMode.ReadSchema);
thi