using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.IO;
using System.Diagnostics;
namespace Components
{
/// <summary>
/// 系統常用工具函數類
/// </summary>
public class SystemTools
{
/// <summary>
/// 將DataReader 轉為 DataTable
/// </summary>
/// <param name="DataReader">DataReader</param>
public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
DataTable datatable = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable();
//動態添加列
try
{
foreach(DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
//添加資料
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
schemaTable = null;
dataReader.Close();
return datatable;
}
catch(Exception ex)
{
///拋出類型轉換錯誤
throw new Exception("轉換出錯出錯!",ex);
}
}
/// <summary>
/// 將英文的星期幾轉為中文
/// </summary>
public static string ConvertDayOfWeekToZh(System.DayOfWeek dw)
{
string DayOfWeekZh="";
switch (dw.ToString ("D"))
{
case "0":
DayOfWeekZh="日";
break;
case "1":
DayOfWeekZh="一";
break;
case "2":
DayOfWeekZh="二";
break;
case "3":
DayOfWeekZh="三";
break;
case "4":
DayOfWeekZh="四";
break;
case "5":
DayOfWeekZh="五";
break;
case "6":
DayOfWeekZh="六";
break;
}
return DayOfWeekZh;
}
}
/// <summary>
/// 錯誤處理函數,用於記錄錯誤記錄檔
/// </summary>
public class SystemError
{
//記錄錯誤記錄檔位置
private const string FILE_NAME = "c://OfficeAutolog.txt";
/// <summary>
/// 記錄日誌至文字檔
/// </summary>
/// <param name="message">記錄的內容</param>
public static void SystemLog(string message)
{
// if(File.Exists(FILE_NAME))
// {
// ///如果記錄檔已經存在,則直接寫入記錄檔
// StreamWriter sr = File.AppendText(FILE_NAME);
// sr.WriteLine ("/n");
// sr.WriteLine (DateTime.Now.ToString()+message);
// sr.Close();
// }
// else
// {
// ///建立記錄檔
// StreamWriter sr = File.CreateText(FILE_NAME);
// sr.Close();
// }
}
}
//自訂Exception
public class MyException:Exception
{
//包含系統Excepton
public MyException(string source,string message,Exception inner):base(message,inner)
{
base.Source=source;
}
//不包含系統Exception
public MyException(string source,string message):base(message)
{
base.Source=source;
}
}
/// <summary>
/// 處理網頁中的HTML代碼,並消除危險字元
/// </summary>
public class SystemHTML
{
private static string HTMLEncode(string fString)
{
if(fString!=string.Empty)
{
///替換角括弧
fString.Replace("<","<");
fString.Replace(">","&rt;");
///替換引號
fString.Replace(((char)34).ToString(), """);
fString.Replace(((char)39).ToString(), "'");
///替換空格
fString.Replace(((char)13).ToString(), "");
///替換分行符號
fString.Replace(((char)10).ToString(), "<BR> ");
}
return(fString);
}
}
}