1//以下的源码里分别给出了将DBF,XLS,XML,MDB文件导入C#DataGrid的方法,供各位参考。
2
3//PutInDataSet.cs的源码
4using System;
5using System.Data.Odbc;
6using System.Data.OleDb;
7using System.Data;
8using System.Collections;
9
10namespace PutInDataSet
11{
12/// <summary>
13/// DataSetTransIn 的摘要说明。
14/// </summary>
15public class PutInDataSet
16{
17/// <summary>
18/// 传入的文件变量
19/// </summary>
20private DataSet my_Ds;//存放文件的数据集
21private string my_Err;//错误信息
22private string my_TableName;//传入的文件名
23private TableType my_TableType;//传入的文件类型
24private string my_TablePath;//传入的文件路径
25private int my_TableIndex;//表的索引
26OleDbCommandBuilder my_Builder;//命令串
27
28/// <summary>
29/// 数据库连接变量
30/// </summary>
31private string my_StrConnection;//连接字符串
32private string my_StrSelect;//select语句
33
34/// <summary>
35/// 可以处理的文件类型
36/// </summary>
37public enum TableType
38{
39MDB,XLS,DBF,DOC,TXT,XML,HTML
40}
41
42public PutInDataSet(string TablePath,string TableName,TableType TableType)
43{
44///<summary>
45///获得传入的路径,文件名及文件类型;
46///</summary>
47this.my_TablePath=TablePath;//路径
48this.my_TableName=TableName;//文件名
49this.my_TableType=TableType;//文件类型
50}
51
52public DataSet Convert()
53{
54DataSet iRtn_Ds=new DataSet();
55switch (this.my_TableType)
56{
57case TableType.DBF:
58iRtn_Ds = this.DbfToDs();
59break;
60
61case TableType.MDB:
62iRtn_Ds = this.MdbToDs();
63break;
64
65case TableType.XLS:
66iRtn_Ds = this.XlsToDs();
67break;
68
69case TableType.XML:
70iRtn_Ds = this.XMLToDs();
71break;
72}
73return iRtn_Ds;
74}
75
76///<summary>
77///将DBF文件放入DataSet
78///</summary>
79private DataSet DbfToDs()
80{
81//数据库连接定义
82OdbcConnection my_conn; //数据连接
83OdbcDataAdapter my_Adapter;//数据适配器
84
85//数据库连接
86this.my_StrConnection= "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + this.my_TablePath;
87this.my_StrSelect="SELECT * FROM " + this.my_TableName;
88my_conn = new OdbcConnection(this.my_StrConnection);
89my_conn.Open();
90my_Adapter = new OdbcDataAdapter(this.my_StrSelect,my_conn);
91this.my_Ds=new DataSet();
92
93//填充数据集
94my_Adapter.Fill(this.my_Ds,this.my_TableName);
95return this.my_
96
97
98Ds;
99}
100
101///<summary>
102///将MDB文件放入DataSet
103///</summary>
104private DataSet MdbToDs()
105{
106//数据库连接定义
107OleDbConnection my_conn;
108OleDbDataAdapter my_Adapter;
109
110//数据库连接
111this.my_StrConnection= "Provider=Microsoft.JET.OLEDB.4.0;data source=" + this.my_TablePath;
112this.my_StrSelect="SELECT * FROM " + this.my_TableName;
113my_conn = new OleDbConnection(this.my_StrConnection);
114my_conn.Open();
115my_Adapter = new OleDbDataAdapter(this.my_StrSelect,my_conn);
116this.my_Ds=new DataSet();
117
118//填充数据集
119my_Adapter.Fill(this.my_Ds,this.my_TableName);
120return this.my_Ds;
121}
122
123///<summary>
124///将XML文件放入DataSet
125///</summary>
126private DataSet XMLToDs()
127{
128
129//填充数据集
130this.my_Ds=new DataSet();
131this.my_Ds.ReadXML(this.my_TablePath+this.my_TableName,XMLReadMode.ReadSchema);
132this.my_Ds.DataSetName="XMLData";
133return this.my_Ds;
134}
135
136///<summary>
137///将Excel文件放入DataSet
138///</summary>
139private DataSet XlsToDs()
140{
141OleDbConnection my_conn;
142OleDbDataAdapter my_Adapter;
143
144//数据库连接
145this.my_StrConnection= "Provider=Microsoft.JET.OLEDB.4.0;Extended Properties=Excel 8.0;data source="+this.my_TablePath+this.my_TableName;
146this.my_StrSelect="SELECT * FROM [SHEET1$]";
147my_conn = new OleDbConnection(this.my_StrConnection);
148my_conn.Open();
149my_Adapter = new OleDbDataAdapter(this.my_StrSelect,my_conn);
150this.my_Builder=new OleDbCommandBuilder(my_Adapter);
151this.my_Ds=new DataSet();
152
153//填充数据集
154my_Adapter.Fill(this.my_Ds,"ExcelData");
155return this.my_Ds;
156}
157
158
159}
160}
161
162
163//Form_PutInDataSet.cs的源码
164
165using System;
166using System.Data;
167using System.Drawing;
168using System.Collections;
169using System.ComponentModel;
170using System.Windows.Forms;
171using DataAccess.SysManage;
172using BusinessRules;
173using DataSetTrans;
174
175
176namespace WinForm.Common
177{
178/// <summary>
179/// FormDesktop 的摘要说明。
180/// </summary>
181public class FormDesktop : System.Windows.Forms.Form
182{
183private WinForm.Common.DeskTop deskTop1;
184private System.Windows.Forms.Button button1;
185/// <summary>
186/// 必需的设计器变量。
187/// </summary>
188private System.ComponentModel.Container components = null;
189
190private DataSet m_ds = new DataSet();
191private System.Windows.Forms.DataGrid dataGrid1; //数据源
192private string m_TableName; //外部文件名称
193
194public FormDesktop()
195{
196//
197// Windows 窗体设计器支持所必需的
198//
199InitializeComponent();
200
201//
202// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
203//
204}
205
206/// <summary>
207/// 清理所有正在使用的资源。
208/// </summary>
209protected override void Dispose( bool disposing )
210{
211if( disposing )
212{
213if(components != null)
214{
215components.Dispose();
216}
217}
218base.Dispose( disposing );
219}
220
221Windows Form Designer generated code
280
281private void FormDesktop_Load(object sender, System.EventArgs e)
282{
283
284}
285
286/// <summary>
287/// 当窗口改变大小时自动居中。
288/// </summary>
289private void FormDesktop_Resize(object sender, System.EventArgs e)
290{
291if (this.WindowState != FormWindowState.Minimized)
292{
293if (this.Width > this.deskTop1.Width && this.Height > this.deskTop1.Height )
294{
295this.deskTop1.Left = (this.Width - this.deskTop1.Width) / 2;
296this.deskTop1.Top = (this.Height- this.deskTop1.Height)/ 2;
297}
298}
299}
300
301private void button1_Click(object sender, System.EventArgs e)
302{
303DataSet out_Ds=new DataSet();
304PutInDataSet obj=new PutInDataSet("文件路径","文件名",PutInDataSet.TableType.文件格式);//调用PutInDataSet类
305out_Ds=obj.Convert();//转换到DataSet中
306this.dataGrid1.DataSource=out_Ds.Tables["表名"];//在DataGrid中显示
307
308}
309}
310}
311
2
3//PutInDataSet.cs的源码
4using System;
5using System.Data.Odbc;
6using System.Data.OleDb;
7using System.Data;
8using System.Collections;
9
10namespace PutInDataSet
11{
12/// <summary>
13/// DataSetTransIn 的摘要说明。
14/// </summary>
15public class PutInDataSet
16{
17/// <summary>
18/// 传入的文件变量
19/// </summary>
20private DataSet my_Ds;//存放文件的数据集
21private string my_Err;//错误信息
22private string my_TableName;//传入的文件名
23private TableType my_TableType;//传入的文件类型
24private string my_TablePath;//传入的文件路径
25private int my_TableIndex;//表的索引
26OleDbCommandBuilder my_Builder;//命令串
27
28/// <summary>
29/// 数据库连接变量
30/// </summary>
31private string my_StrConnection;//连接字符串
32private string my_StrSelect;//select语句
33
34/// <summary>
35/// 可以处理的文件类型
36/// </summary>
37public enum TableType
38{
39MDB,XLS,DBF,DOC,TXT,XML,HTML
40}
41
42public PutInDataSet(string TablePath,string TableName,TableType TableType)
43{
44///<summary>
45///获得传入的路径,文件名及文件类型;
46///</summary>
47this.my_TablePath=TablePath;//路径
48this.my_TableName=TableName;//文件名
49this.my_TableType=TableType;//文件类型
50}
51
52public DataSet Convert()
53{
54DataSet iRtn_Ds=new DataSet();
55switch (this.my_TableType)
56{
57case TableType.DBF:
58iRtn_Ds = this.DbfToDs();
59break;
60
61case TableType.MDB:
62iRtn_Ds = this.MdbToDs();
63break;
64
65case TableType.XLS:
66iRtn_Ds = this.XlsToDs();
67break;
68
69case TableType.XML:
70iRtn_Ds = this.XMLToDs();
71break;
72}
73return iRtn_Ds;
74}
75
76///<summary>
77///将DBF文件放入DataSet
78///</summary>
79private DataSet DbfToDs()
80{
81//数据库连接定义
82OdbcConnection my_conn; //数据连接
83OdbcDataAdapter my_Adapter;//数据适配器
84
85//数据库连接
86this.my_StrConnection= "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + this.my_TablePath;
87this.my_StrSelect="SELECT * FROM " + this.my_TableName;
88my_conn = new OdbcConnection(this.my_StrConnection);
89my_conn.Open();
90my_Adapter = new OdbcDataAdapter(this.my_StrSelect,my_conn);
91this.my_Ds=new DataSet();
92
93//填充数据集
94my_Adapter.Fill(this.my_Ds,this.my_TableName);
95return this.my_
96
97
98Ds;
99}
100
101///<summary>
102///将MDB文件放入DataSet
103///</summary>
104private DataSet MdbToDs()
105{
106//数据库连接定义
107OleDbConnection my_conn;
108OleDbDataAdapter my_Adapter;
109
110//数据库连接
111this.my_StrConnection= "Provider=Microsoft.JET.OLEDB.4.0;data source=" + this.my_TablePath;
112this.my_StrSelect="SELECT * FROM " + this.my_TableName;
113my_conn = new OleDbConnection(this.my_StrConnection);
114my_conn.Open();
115my_Adapter = new OleDbDataAdapter(this.my_StrSelect,my_conn);
116this.my_Ds=new DataSet();
117
118//填充数据集
119my_Adapter.Fill(this.my_Ds,this.my_TableName);
120return this.my_Ds;
121}
122
123///<summary>
124///将XML文件放入DataSet
125///</summary>
126private DataSet XMLToDs()
127{
128
129//填充数据集
130this.my_Ds=new DataSet();
131this.my_Ds.ReadXML(this.my_TablePath+this.my_TableName,XMLReadMode.ReadSchema);
132this.my_Ds.DataSetName="XMLData";
133return this.my_Ds;
134}
135
136///<summary>
137///将Excel文件放入DataSet
138///</summary>
139private DataSet XlsToDs()
140{
141OleDbConnection my_conn;
142OleDbDataAdapter my_Adapter;
143
144//数据库连接
145this.my_StrConnection= "Provider=Microsoft.JET.OLEDB.4.0;Extended Properties=Excel 8.0;data source="+this.my_TablePath+this.my_TableName;
146this.my_StrSelect="SELECT * FROM [SHEET1$]";
147my_conn = new OleDbConnection(this.my_StrConnection);
148my_conn.Open();
149my_Adapter = new OleDbDataAdapter(this.my_StrSelect,my_conn);
150this.my_Builder=new OleDbCommandBuilder(my_Adapter);
151this.my_Ds=new DataSet();
152
153//填充数据集
154my_Adapter.Fill(this.my_Ds,"ExcelData");
155return this.my_Ds;
156}
157
158
159}
160}
161
162
163//Form_PutInDataSet.cs的源码
164
165using System;
166using System.Data;
167using System.Drawing;
168using System.Collections;
169using System.ComponentModel;
170using System.Windows.Forms;
171using DataAccess.SysManage;
172using BusinessRules;
173using DataSetTrans;
174
175
176namespace WinForm.Common
177{
178/// <summary>
179/// FormDesktop 的摘要说明。
180/// </summary>
181public class FormDesktop : System.Windows.Forms.Form
182{
183private WinForm.Common.DeskTop deskTop1;
184private System.Windows.Forms.Button button1;
185/// <summary>
186/// 必需的设计器变量。
187/// </summary>
188private System.ComponentModel.Container components = null;
189
190private DataSet m_ds = new DataSet();
191private System.Windows.Forms.DataGrid dataGrid1; //数据源
192private string m_TableName; //外部文件名称
193
194public FormDesktop()
195{
196//
197// Windows 窗体设计器支持所必需的
198//
199InitializeComponent();
200
201//
202// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
203//
204}
205
206/// <summary>
207/// 清理所有正在使用的资源。
208/// </summary>
209protected override void Dispose( bool disposing )
210{
211if( disposing )
212{
213if(components != null)
214{
215components.Dispose();
216}
217}
218base.Dispose( disposing );
219}
220
221Windows Form Designer generated code
280
281private void FormDesktop_Load(object sender, System.EventArgs e)
282{
283
284}
285
286/// <summary>
287/// 当窗口改变大小时自动居中。
288/// </summary>
289private void FormDesktop_Resize(object sender, System.EventArgs e)
290{
291if (this.WindowState != FormWindowState.Minimized)
292{
293if (this.Width > this.deskTop1.Width && this.Height > this.deskTop1.Height )
294{
295this.deskTop1.Left = (this.Width - this.deskTop1.Width) / 2;
296this.deskTop1.Top = (this.Height- this.deskTop1.Height)/ 2;
297}
298}
299}
300
301private void button1_Click(object sender, System.EventArgs e)
302{
303DataSet out_Ds=new DataSet();
304PutInDataSet obj=new PutInDataSet("文件路径","文件名",PutInDataSet.TableType.文件格式);//调用PutInDataSet类
305out_Ds=obj.Convert();//转换到DataSet中
306this.dataGrid1.DataSource=out_Ds.Tables["表名"];//在DataGrid中显示
307
308}
309}
310}
311