プログラム C# クラス DB接続 ODBC - git0331-lgtm/Knowledge GitHub Wiki
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.Odbc;
namespace XXX
{
public class ODBCHelper
{
private string _connectionString;
public ODBCHelper(string connectionString)
{
_connectionString = connectionString;
}
// クエリ実行
public DataTable ExecuteQuery(string query)
{
string dbName = ExtractDatabaseName(_connectionString);
DataTable dataTable = new DataTable();
using (OdbcConnection connection = new OdbcConnection(_connectionString))
{
try
{
connection.Open();
using (OdbcCommand command = new OdbcCommand(query, connection))
{
using (OdbcDataAdapter adapter = new OdbcDataAdapter(command))
{
adapter.Fill(dataTable);
}
}
}
catch (Exception ex)
{
MessageBox.Show($"接続先DB : {dbName}\n実行クエリ : {query}\n" + "\n" +
"エラー詳細 : " + ex.Message,
"エラー",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
return null;
}
}
return dataTable;
}
// DB名取得
private string ExtractDatabaseName(string connectionString)
{
var dsnValue = connectionString.Split(';')[0].Split('=')[1];
if (dsnValue.Contains("_"))
{
return dsnValue.Substring(dsnValue.IndexOf('_') + 1);
}
return dsnValue;
}
}
}