iT邦幫忙

0

C# 製作exe檔案 連接PGSQL 下PGSQL 指令與寫下Log 如何起頭

HI
各位大神好
小弟最近遇到狀況是,
原本使用C# 類別庫 寫排程DLL檔案,(此檔案主要是判斷運作時間、操作SQL指令、寫Log檔案)
但現在需要改成 讓Windows 內建排程去執行,
目前只有想到讓排程去使用 .Bat 檔案 或是 .EXE檔案
但不知道如何下手 也不確定連接字串是要寫死在程式碼裡面嗎

還是各位有更好的方法呢~
希望各位給我一點方向~感謝

看更多先前的討論...收起先前的討論...
所以你也沒具備C#的基礎罵?
bb77a88bb iT邦新手 5 級 ‧ 2021-08-24 09:30:08 檢舉
我是有但想說沒有這樣試過,想先詢問看看大家的意見,例如排程要跑sql是不是都這樣運作的
Homura iT邦高手 1 級 ‧ 2021-08-24 10:19:30 檢舉
建一個設定檔方便隨時改資料庫連接字串
Yaowen iT邦研究生 4 級 ‧ 2021-08-24 11:09:49 檢舉
你可以寫在ini之類的....
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
Yaowen
iT邦研究生 4 級 ‧ 2021-08-24 11:21:40
最佳解答

你可以寫一個ini

XXX.ini (C#執行檔名+ini)
裡面內容如下

[DataServer Set]
DBServerIP =127.0.0.1
DBPort =3306
DBUserID =root
DBUserPwd =12345
DBName =aaa

以下先給你參考一下


public static string GlobalDBServerIP;       //資料庫主機IP位址
public static string GlobalDBPort;       //資料庫主機Port
public static string GlobalDBUserID;   //資料庫主機登入帳號 
public static string GlobalDBUserPwd;         //資料庫主機登入密碼 
public static string GlobalDBName;         //主要使用之資料庫
public static string GlobalConnString;       //資料庫連接字串

public static string GlobalSystemIniFile = System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".ini";
    
if (!File.Exists(GlobalSystemIniFile)){
    
using (StreamWriter sw = new StreamWriter(GlobalSystemIniFile, true, Encoding.GetEncoding(950))) {
             
   sw.WriteLine("[DataServer Set]");
   sw.WriteLine("DBServerIP = 127.0.0.1");
   sw.WriteLine("DBPort = 3306");
   sw.WriteLine("DBUserID = root");
   sw.WriteLine("DBUserPwd = 12345");
   sw.WriteLine("DBName = aaa");
      
   }
 }

if (File.Exists(GlobalSystemIniFile)){
    GlobalDBServerIP = Myini.IniReadValue("DataServer Set", "DBServerIP", "");
    GlobalDBPort = Myini.IniReadValue("DataServer Set", "DBPort", "");
    GlobalDBUserID = Myini.IniReadValue("DataServer Set", "DBUserID", "");
    GlobalDBUserPwd = Myini.IniReadValue("DataServer Set", "DBUserPwd", "");
    GlobalDBName = Myini.IniReadValue("DataServer Set", "DBName", "");           
}
看更多先前的回應...收起先前的回應...
Homura iT邦高手 1 級 ‧ 2021-08-24 12:00:12 檢舉

現在都是用xml和json比較多了...

Yaowen iT邦研究生 4 級 ‧ 2021-08-24 12:09:19 檢舉

對阿 .net core 是用json 早期是formwork 是用xml...
但我覺得不需要搞那麼複雜還要了解xml 跟 json格式用法

Homura iT邦高手 1 級 ‧ 2021-08-24 13:03:09 檢舉

也沒很複雜
ini讀取也沒很方便就是

PPTaiwan iT邦好手 1 級 ‧ 2021-08-25 11:44:09 檢舉

看到 INI 就想到上一家公司主管說 "用 ini 很不專業" ,心中有好多 OS 喔!! 那 Microsoft 真的不專業到現在 Office 與 Windows 系統都還在用 ini 也!!

如果單純使用參數用 INI 反而比用 JSON 來的簡單,JSON 還要設計相關的程式來讀取特定位置的資料,階層還要再想如何設計。

用 INI 取代掉在 Web.Config 內 「自訂參數」反而來的好,保持 Web.Config 單純。專案會以需求的不同會添加相關參數,這需求結束後移除「以專案需求 ini」來保持專案單純。

Yaowen iT邦研究生 4 級 ‧ 2021-08-25 12:04:06 檢舉

我覺得能解決問題就是好方法
都還是要懂,因為可能要適應不同情況去解決問題

1
Homura
iT邦高手 1 級 ‧ 2021-08-24 13:11:11

連接字串寫在App.config裡面才能方便更改
如果你是core需要自建appsetting.json
官網教學:https://docs.microsoft.com/zh-tw/dotnet/api/system.configuration.configurationmanager.connectionstrings?view=netframework-4.8

我要發表回答

立即登入回答