我正在试验如何让 Web 应用程序支持多个数据库,特别是 SQL Server 和 MySQL。
我已经设置了我的 SQL 帮助程序类,它将负责连接到数据库和查询执行。我正在使用IDBCommand
,IDBConnection
等。我已经使用控制台应用程序测试了该类,它适用于不带参数的查询。
但是当我添加参数时,问题就从这里开始了。
我希望对表名使用参数,因为当前表名可能会更改,并且在查询中重命名表会很痛苦。
我找到了一篇文章,其中作者分享了他将参数添加到IDBCommand
. 我找不到文章的链接,但这是我从文章中获得的示例(感谢作者顺便说一句!:D)我能够确认参数已添加,因为它们被列在IDBCommand
by using QuickWatch,但我收到“必须声明表变量“@myTable”。” 错误。
internal static int AddInputParameter<T>(this IDbCommand cmd,
string name, T value)
{
var p = cmd.CreateParameter();
p.ParameterName = name;
p.Value = value;
return cmd.Parameters.Add(p);
}
知道我做错了什么吗?
编辑:
为了回应 bew 的回复,我能够同时使用SqlCommand
和来做到这一点MySqlCommand
。
Edit2:
看起来我记错了。我string.format()
在过去的项目中使用了表名。