昨夜飘风
昨 夜, 风, 飘 过; 枯 树, 叶, 飞 落。
线程加委托
C# code
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Data.OleDb; using System.Threading; using System.IO; namespace DbTools { internal class DbToolFunc { public delegate void ErrorHandler(string errorMessage); public event ErrorHandler errorMessage; public delegate void DataCompletedHandler(DataSet data); public event DataCompletedHandler dataCompleted; private Thread _threadShow; public DbToolFunc() { } public DbToolFunc(string xlsPathName) { _xlsPathName = xlsPathName; } private string _xlsPathName = null; public string xlsFileName { set { this._xlsPathName = value; } } private DataSet _errordata = null; public DataSet ErrorData { get { return this._errordata; } } private void GetDataProc() { OleDbConnection objConn = null; try { DataSet ds = new DataSet(); if (String.IsNullOrEmpty(_xlsPathName)) { if (this.errorMessage != null) { if (this.errorMessage != null) this.errorMessage("文件名没有指定!"); } return; } if (!File.Exists(_xlsPathName)) { if (this.errorMessage != null) { if (this.errorMessage != null) this.errorMessage("文件不存在!"); } return; } string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + _xlsPathName + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'"; objConn = new OleDbConnection(strConn); objConn.Open(); DataTable schemaTable = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); OleDbDataAdapter sqlada = new OleDbDataAdapter(); foreach (DataRow dr in schemaTable.Rows) { string strSql = "Select * From [" + dr[2].ToString().Trim() + "]"; OleDbCommand objCmd = new OleDbCommand(strSql, objConn); sqlada.SelectCommand = objCmd; sqlada.Fill(ds, dr[2].ToString().Trim()); } objConn.Close(); if (this.dataCompleted != null) this.dataCompleted(ds); } catch (Exception ex) { objConn.Close(); if (this.errorMessage != null) this.errorMessage(ex.Message); } } public void GetDataSetFromExcel() { if (this._threadShow != null && this._threadShow.ThreadState == ThreadState.Running) { return; } this._threadShow = new Thread(new ThreadStart(GetDataProc)); this._threadShow.Start(); } }
posted on 2008-04-16 15:19  昨夜飘风  阅读(176)  评论(0编辑  收藏  举报