리눅스 서비스에서 ini 파일 읽을 때
var parser = new FileIniDataParser();
IniData data = parser.ReadFile("./setting.ini");
string host = data["DataBase"]["host"];
string user = data["DataBase"]["user "];
string password = data["DataBase"]["password"];
string dbname = data["DataBase"]["Database_name"];
string port = data["DataBase"]["port"];
sqlConnector = "Server=" + host + ";User ID=" + user + ";Password=" + password + ";Database=" + dbname + ";Port=" + port;
윈도우에 클라이언트에서 ini 파일 읽을 때
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
readonly string iniPath;
public IniReaderHelper() // 생성자
{
string AppDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\settings";
if (Directory.Exists(AppDataFolder))
{
System.IO.Directory.CreateDirectory(AppDataFolder);
}
var Path = AppDataFolder + "\\setting.ini";
iniPath = Path;
}
public string GetDBconnectionString()
{
Retry:
StringBuilder ip = new StringBuilder();
StringBuilder user = new StringBuilder();
StringBuilder password = new StringBuilder();
StringBuilder port = new StringBuilder();
StringBuilder name = new StringBuilder();
GetPrivateProfileString("DataBase", "ip", "(NONE)", ip, 32, iniPath);
GetPrivateProfileString("DataBase", "user", "(NONE)", user, 32, iniPath);
GetPrivateProfileString("DataBase", "password", "(NONE)", password, 32, iniPath);
GetPrivateProfileString("DataBase", "port", "(NONE)", port, 32, iniPath);
GetPrivateProfileString("DataBase", "name", "(NONE)", name, 32, iniPath);
if (ip.ToString() == "(NONE)" || user.ToString() == "(NONE)" || password.ToString() == "(NONE)" || port.ToString() =="(NONE)" || name.ToString() =="(NONE)")
{
if (SetConnectionString()) // 데이터 없으면 기본값으로 설정
goto Retry;
else
{
App.Current.MainWindow.Close();
return "cancel";
}
}
return "Server=" + ip + ";User=" + user + ";Password=" + password + ";Database=" + name + ";Port=" + port;
}
필요한 곳에서 string DBString = GetDBconnectionString();
'C# > c#' 카테고리의 다른 글
[ c# ] 매일 밤 12시 폴더 생성 , 폴더 삭제 Task 이용 (0) | 2022.12.28 |
---|---|
[ c# ] EF Core vs Dapper vs MySqlConnecter 성능 비교 (0) | 2022.12.27 |
[ c# ] MySqlConnector 로 mysql select , insert (0) | 2022.12.26 |
[ c# ] Dapper 사용해서 mysql select , insert (0) | 2022.12.24 |
[ open API ] open API _ 공공 데이터 포털 xml 데이터 가져오기 (0) | 2021.11.17 |