厚積薄發,豐富的公用類庫積累,助你高效進行系統開發(2)----常用操作
自從上篇隨筆《厚積薄發,豐富的公用類庫積累,助你高效進行系統開發(1)》一文以來,得到同行很多人的鼎力支援和關注,並且在大家的推動下,這篇文章也是上榜部落格頭條、編輯推薦、10天內推薦排行等榮譽,很多人對這些類庫很是感興趣,也希望進一步詳細介紹相關類庫的使用。本隨筆系列將逐步介紹相關的類庫的詳細使用,並逐步整理成CHM的幫助文件,作為類庫使用的指引手冊,同時我會對類庫進行進一步的豐富、提煉和優化,隨筆將逐步傳送,感謝大家的支援和鼓勵。
1、程式配置管理輔助類 AppConfig **
實現效果
1、 本輔助類主要是用來方便獲取或設定系統配置項的輔助類,實現快速讀寫配置檔案的內容,可以用於讀取.exe.Config檔案或者Web.config的檔案內容,或者可以讀取指定檔案的配置項。
2、 輔助類預設從當前目錄中按順序檢索Web.Config和.exe.Config檔案。如果找到一個,則使用它作為預設的配置檔案,不需要指定檔案路徑。
3、 讀取的檔案格式是一般的XML配置檔案格式,如下所示。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="dataConfiguration"
type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data"/>
</configSections>
<connectionStrings>
<add name="DataAccess" providerName="System.Data.SqlClient"
connectionString="Persist Security Info=False;Data Source=(local);Initial Catalog=Warehouse;User ID=sa;Password=123456"/>
</connectionStrings>
<dataConfiguration defaultDatabase="DataAccess"/>
<appSettings>
<!--軟體名稱-->
<add key="ApplicationName" value="深田之星倉庫管理系統"/>
<!--開發商名稱-->
<add key="Manufacturer" value="廣州愛啟迪技術有限公司"/>
<!--字典、許可權元件的資料庫型別:access、sqlserver等,預設為sqlserver可不寫-->
<add key="ComponentDbType" value="sqlserver"/>
</appSettings>
</configuration>
實現程式碼
1、 讀取配置專案。
AppConfig config = new AppConfig();
string Manufacturer = config.AppConfigGet("Manufacturer");
string ApplicationName = config.AppConfigGet("ApplicationName");
string AppWholeName = string.Format("{0}-{1}", Manufacturer, ApplicationName);
2、 讀取複雜的連線字串配置,如上面的EnterpriseLibrary的連線字串 DataAccess 配置專案的ConnectString。
/// <summary>
/// 測試資料庫是否正常連線
/// </summary>
/// <returns></returns>
public static bool TestConnection(string connectionString)
{
bool result = false;
using (DbConnection connection = new SqlConnection(connectionString))
{
connection.Open();
if (connection.State == System.Data.ConnectionState.Open)
{
result = true;
}
}
return result;
}
public static bool TestConnection()
{
AppConfig config = new AppConfig();
return TestConnection(config.GetConnectionString("DataAccess"));
}
3、 寫入配置項內容。
AppConfig config = new AppConfig();
//儲存地址(標準呼叫)
config.AppConfigSet("PictureRootDir", this.txtPath.Text);
//儲存EnterpriseLibray資料庫配置項(自定義設定)
string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}Database1.mdb;User ID=Admin;Jet OLEDB:Database Password=;", System.AppDomain.CurrentDomain.BaseDirectory);
config.SetConnectionString("DataAccess", connectionString);
//更新配置檔案,以便起效
ConfigurationManager.RefreshSection("dataConfiguration");
ConfigurationManager.RefreshSection("connectionStrings");
ConfigurationManager.RefreshSection("appSettings");
**2、訊息提示對話方塊輔助類 MessageUtil******
** 實現效果**
1、本輔助類主要是用來方便實現標準統一的訊息提示對話方塊,由於各種按鈕的樣式、標題都進行了統一分裝,因此呼叫的時候,這些引數都可以不用考慮,省卻很多繁瑣的引數指定,是Winform開發中非常常用的一個類庫輔助類。
實現程式碼
MessageUtil.ShowTips("提示資訊對話方塊");
MessageUtil.ShowWarning("警告訊息提示框");
MessageUtil.ShowError("錯誤訊息提示框");
MessageUtil.ShowYesNoAndTips("提示對話方塊,有Yes/No按鈕");
MessageUtil.ShowYesNoAndWarning("警告對話方塊,有Yes/No按鈕");
MessageUtil.ShowYesNoAndError("錯誤對話方塊,有Yes/No按鈕");
MessageUtil.ShowYesNoCancelAndTips("提示對話方塊,有Yes/No/Cancel按鈕");
MessageUtil.ConfirmYesNo("確認對話方塊,有Yes/No對話方塊");
MessageUtil.ConfirmYesNoCancel("確認對話方塊,有Yes/No/Cancel對話方塊");
3、日曆類輔助類 CCalendar
** 實現效果**
1、 本輔助類主要是用來方便顯示日期時間、農曆、生肖的日曆類,並可以計算農曆很多屬性,並且通過一個函式提供一個全面的日期資訊,可以用於裝飾介面的效果。
2、 其效果如下所示
** 實現程式碼**** **
CCalendar cal = new CCalendar();
this.lblCalendar.Text = cal.GetDateInfo(System.DateTime.Now).Fullinfo;
一般節日會提示相關的節日資訊,另外可以通過修改XML檔案,實現對節日、時間提示等資訊調整。
<?xml version="1.0" encoding="gb2312" ?>
<HELLO>
<!-- 公曆節日開始 -->
<AD>
<feast day="0101" name="元旦" sayhello="yes">
<hello>新年好!祝您在新的一年裡身體健康,事業進步!</hello>
<!-- 從網站根目錄算起 -->
<img>./img/theme/0101.gif</img>
</feast>
<feast day="0202" name="世界溼地日" sayhello="no">
<img></img>
<hello></hello>
</feast>
<feast day="0210" name="國際氣象節" sayhello="no">
<img></img>
<hello></hello>
</feast>
<feast day="0214" name="情人節" sayhello="yes">
<hello>祝天下有情人終成眷屬!</hello>
<img>./img/theme/0214.gif</img>
</feast>
<feast day="0301" name="世界圖書日" sayhello="no">
<img></img>
<hello></hello>
</feast>
.............
4、托盤圖示輔助類 NotifyIconHelper **
** 實現效果
1、 本輔助類主要是用來方便動態設定托盤圖示。該輔助類用於一些實時連線要求或者狀態變化能夠及時通過圖表來顯示的程式,通過閃動的圖示及文字,可以有效提示使用者相關的程式狀態,提供使用者的使用體驗。
2、 動態設定托盤圖示,其效果如下所示
** 實現步驟**
2、 在程式碼引用相關的程式碼實現動態呼叫。
** 實現程式碼**
public partial class FrmMain : Form
{
private NotifyIconHelper notifyHelper;
private const string ClientName = "資料採集終端";//PC式採集器終端
public frmMain()
{
InitializeComponent();
this.Text = ClientName;
//初始化托盤圖示
notifyHelper = new NotifyIconHelper(this.notifyIcon1);
notifyHelper.Icon_Conntected = Resources.Connected;
notifyHelper.Icon_Shrink1 = Resources.shrink1;
notifyHelper.Icon_Shrink2 = Resources.shrink2;
notifyHelper.Icon_UnConntect = Resources.unConnected;
notifyHelper.Text_Conntected = string.Format("{0}:終端已經連線", ClientName);
notifyHelper.Text_UnConntect = string.Format("{0}:終端未連線", ClientName);
notifyHelper.NotifyStatus = NotifyIconHelper.Status.TwinkleNotice;
}
/// <summary>
/// 設定托盤圖示的狀態
/// </summary>
/// <param name="status"></param>
public void SetNotifyStatus(NotifyIconHelper.Status status)
{
notifyHelper.NotifyStatus = status;
if (status == NotifyIconHelper.Status.Offline)
{
this.Invoke(new MethodInvoker(delegate()
{
this.Icon = notifyHelper.Icon_UnConntect;
}));
}
else if (status == NotifyIconHelper.Status.Online)
{
this.Invoke(new MethodInvoker(delegate()
{
this.Icon = notifyHelper.Icon_Conntected;
}));
}
}
**5、DataTable操作輔助類 DataTableHelper **
實現效果
1、本輔助類主要是用來方便對DataTable進行相關操作的輔助類,該類是非常常用的工具類,常用與資料顯示、轉換和報表生成等操作中。
2、 提供的操作,包括有建立表、DataTable和實體類集合IList<T>相互轉化、表排序、表過濾等操作,以求達到快速進行DataTable操作的目的。
實現程式碼
1、 根據欄位建立表物件,多個列用逗號(,)分開,預設為表物件的列為string。
string columns = @"流水號,備註,供貨商,操作員,庫房名稱,備件編號(pm碼),備件名稱,圖號,規格型號,材質,備件屬類,備件類別,
單位,最新單價(元),入庫數量,總價,入庫日期,來源,庫位,部門,使用位置";
DataTable dt = DataTableHelper.CreateTable(columns);
2、根據欄位建立表物件,多個列用逗號(,)分開。如需要制定列的型別,在欄位後加上“|int”格式的字元。
string tableColumns = "ID|int,ItemNo,ItemName,StockQuantity|int,Manufacture,MapNo,Specification,Material,ItemBigType,ItemType,
Unit,Price|decimal,Source,StoragePos,UsagePos,Note,WareHouse,Dept";
DataTable dt = DataTableHelper.CreateTable(tableColumns);
3、 實體類轉DataTable物件操作ListToDataTable,其對應的反操作函式DataTableToList使用方法類似。
string where = GetSearchSql();
IList<CustomerInfo> list = BLLFactory<Customer>.Instance.Find(where, this.winGridViewPager1.PagerInfo);
DataTable dt = DataTableHelper.ToDataTable<CustomerInfo>(list);
this.winGridViewPager1.DataSource = dt.DefaultView;
this.winGridViewPager1.dataGridView1.Refresh();
4、 DataTable物件排序操作SortedTable,可對錶多列進行排序操作。
string where = GetSearchSql();
IList<CustomerInfo> list = BLLFactory<Customer>.Instance.Find(where, this.winGridViewPager1.PagerInfo);
DataTable dt = DataTableHelper.ToDataTable<CustomerInfo>(list);
DataTable dtSort = DataTableHelper.SortedTable(dt, new string[]{"Number asc", "Type desc"});
相關文章
- 開發積累—泛型工具類泛型
- 厚積薄發,綠盟科技智慧安全3.0理念體系正式釋出
- 厚積薄發之從 Masonry 原始碼看 Objective-C [開篇]原始碼Object
- Genaro Network厚積薄發,開創區塊鏈3.0新時代區塊鏈
- 厚積薄發:探尋磐久伺服器M系列研發之路伺服器
- 厚積薄發,看騰訊雲如何快速從IPv4向IPv6演進?
- 基礎類庫積累--ExeclHelper類
- 日期操作積累
- 記憶體安全週報 | 0928厚積薄發,臨危不亂記憶體
- 小程式開發點滴積累
- 併發總結累積
- 分享.NET系統開發過程中積累的擴充套件方法套件
- Android 開發有用程式碼積累Android
- 使用類似搭積木的低程式碼開發方式進行SAP API開發API
- 常用前端知識積累前端
- postfix配置積累(不斷的積累)
- 我的專案開發經驗積累總結
- 操作hadoop的經驗積累Hadoop
- 常用Sql語句積累(二)SQL
- 厚積薄發 | 綠盟科技牽頭成立CSA雲原生安全工作組,守護雲上安全
- 一個 SAP 成都研究院開發工程師的2021年度總結:既沒有厚積,也未能薄發工程師
- 【進階篇】Java 實際開發中積累的幾個小技巧(二)Java
- Thinkphp開發的積分商城系統原始碼詳情開發示例PHP原始碼
- 種類豐富的材質庫,讓開發者建模輕鬆高效
- Oracle積累Oracle
- sql 常用語句積累 (隨時更新)SQL
- 區塊鏈積分聯盟模式系統如何開發?(區塊鏈積分聯盟模式系統開發原始碼demo)區塊鏈模式原始碼
- 厚積薄發--一文帶您瞭解阿里雲 RocketMQ 輕量版訊息佇列(MNS)阿里MQ佇列
- Vip積分管理系統專案JavaWeb開發流程JavaWeb
- 積累→設計→執行:論遊戲系統策劃的自我修養遊戲
- vue 個人積累Vue
- lunix 命令積累
- linux 積累Linux
- Web開發知識點彙總(每天積累一點點)Web
- 【知識積累】JavaMail實現發郵件功能JavaAI
- 區塊鏈積分商城開發運營版丨區塊鏈積分商城系統開發(案例及詳細)區塊鏈
- 九、Linux/UNIX操作命令積累【rpm】Linux
- 新的GFS累積降水變數-兩種不同的累積降水記錄變數