ユーザーは、使用する 3 つの接続から選択できます。
- スクライト
- SQLサーバー
- MySQL
現在、同じことを行う3つの方法があります。私はこのようなことをしたい
object obj;
if (connectionchosen == "Sqlite")
obj = new SqlLiteConnection("connectiongstring);
if (connectionchosen == "MSSQL")
ojb = new SqlConnection("connectionstring);
if (connectionchosen == "MySQL")
obj = new MySqlConnection("connectionstring);
どうやら、適切にキャスト/変換されない限り、obj は Sqlite / SQL Server / Mysql メンバーを見ることができないため、上記は実行できません。
上記のIFを使用して上記のobjを3つのうちの1つに変換し、メンバーを使用できるようにするにはどうすればよいですか?
例:
public static bool LOGIN(string USERNAME, string PASSWORD,GLOBALFUNCTIONS.DBS DB)
{
try
{
bool val = false;
OPENDB(DB);
object cmd;
if (DB == GLOBALFUNCTIONS.DBS.SQLLOCAL)
{
_CN.SQLLITECMD = new SQLiteCommand("select * from users where username='" + USERNAME + "' and password='" + _GLOBAL.GLOBALFUNCTIONS.GETMD5(PASSWORD + USERNAME) + "'",_CN.SQLLITELOCAL);
_CN.SQLLITEREADER = _CN.SQLLITECMD.ExecuteReader();
if (_CN.SQLLITEREADER.Read())
{
val = true;
_GLOBAL.GLOBALFUNCTIONS.LOGIN(_CN.SQLLITEREADER[0].ToString(), val, _CN.SQLLITEREADER[2].ToString(), GLOBALVARS.DATABASE);
}
else
_GLOBAL.GLOBALFUNCTIONS.LOGIN(_CN.SQLLITEREADER[0].ToString(), val, _CN.SQLLITEREADER[2].ToString(), GLOBALVARS.DATABASE);
_GLOBAL.GLOBALFUNCTIONS.AUDIT(USERNAME, _CN.SQLLITECMD.CommandText, GLOBALVARS.DATABASE);
}
CLOSEDB(DB);
return val;
}
catch (Exception)
{
CLOSEDB(DB);
return false;
}
すべて置き換える
_CN.SQLITECMD/_CN.SQLLITEREADER/_CN.SQLLITELOCAL
と
_CN.MSSQLCMD/_CN.MSSQLREADER/_CN.MSSQLLOCAL
代わりに、3 つの異なる接続すべてに対して単純に CMD/READER/LOCAL を使用したいと考えています。
私は十分に明確であることを願っています。
ありがとうございました。