【发布时间】:2013-08-18 19:28:06
【问题描述】:
我正在试验如何让 Web 应用程序支持多个数据库,特别是 SQL Server 和 MySQL。
我已经设置了我的 SQL 帮助程序类,它将负责连接到数据库和查询执行。我正在使用IDBCommand、IDBConnection 等。我已经用控制台应用程序测试了这个类,它可以很好地处理不带参数的查询。
但是当我添加参数时,问题就出现了。
我希望为表名使用参数,因为当前表名可能会更改,并且在查询中重命名表会很痛苦。
我找到了一篇文章,其中作者分享了他向IDBCommand 添加参数的方法。我找不到文章的链接,但这是我从文章中得到的示例(感谢作者顺便说一句!:D)我能够确认参数已添加,因为它们列在 @987654324 下@ 使用 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。
编辑2:
看来我记错了。我在过去的项目中使用string.format() 作为表名。
【问题讨论】:
-
我不确定在 Visual Studio 2010 中是否允许通过参数填充表,在我的情况下,我使用了变量
-
我可以使用 SqlCommand 做到这一点。
-
你在签名中返回int,什么时候这个方法会在return语句中返回
SqlParameter? -
我猜它就像添加
@一样简单。
标签: c# asp.net mysql sql sql-server