简而言之,我正在编写一个类处理程序来处理我为自己编写的一些软件的数据库集成,但是由于并不总是与远程数据库建立连接,我想我会使用 SQLCE 创建一个本地数据库缓冲区,所以当连接所做的更改可以同步。
到目前为止,除了参数之外,一切都很顺利。我要调用的函数如下所示,但是该函数抱怨参数无效。
public Object run(string query, List<Object> dbparams = null)
{
if (MyDB.isConnected())
{
return MyDB.run(query, dbparams);
}
else
{
SqlCeCommand sql = _OfflineConnection.CreateCommand();
sql.CommandText = query;
if (dbparams.Count > 0)
{
sql.Parameters.AddRange(dbparams.ToArray());
}
return sql;
}
}
MyDB.run 与 else 语句中的代码完全相同,除了 mysql,它抱怨的行是返回 mydb.run,因为 mydb 类期望 dbparams 列表是 mysqlparameters。
有谁知道我怎么能做到这一点?我尝试使用 LINQ 进行转换,但失败得很惨。
编辑
目前我有以下工作,但我确信有一个更清洁的解决方案
public Object run(string query, List<Object> dbparams = null)
{
if (MyDB.isConnected())
{
List<MySqlParameter> mydbparams = null;
for (int i = 0; i < dbparams.Count; i++)
{
mydbparams.Add((MySqlParameter)dbparams[i]);
}
return MyDB.run(query, mydbparams);
}
else
{
SqlCeCommand sql = _OfflineConnection.CreateCommand();
sql.CommandText = query;
if (dbparams.Count > 0)
{
sql.Parameters.AddRange(dbparams.ToArray());
}
return sql;
}
}