用户可以选择使用三个连接。
- 方镁石
- SQL 服务器
- MySQL
我目前有三种方法可以做同样的事情。我想做这样的事情
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 转换为三个之一并能够使用成员?
例子:
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
相反,我希望对所有三个不同的连接简单地使用 CMD/READER/LOCAL。
我希望我足够清楚。
谢谢你。