我可以帮您翻译成中文。问题是:我能否在同一个查询中多次使用参数?

4
我想知道,在同一查询中是否可以多次使用参数,例如:

我在想,是否可以像这样在同一查询中多次使用参数:

MySqlParameter oPar0 = new MySqlParameter("e164", MySqlDbType.String);
oPar0.Value = user.E164;
string sSQL0 = "Delete from callmone.call where (caller=?e164 or called=?e164);";
clsDatabase.ExecuteSQL(sSQL0, oPar0);

这是否可行,还是我应该写两个参数?

你试过了吗,看看它是否能正常工作? - AndrewC
好的,最后解决了一个ID问题,但我相信这个方法是有效的,谢谢。 - Terry
2个回答

5
如果数据库驱动程序处理命名参数,那么您可以重复使用该参数。
如果数据库驱动程序不处理命名参数,则忽略参数名称,并且必须按照它们被使用的确切顺序为每个使用添加一个参数值。
从您呈现的代码来看,驱动程序支持命名参数。如果代码运行没有错误,则它可以正常工作。如果驱动程序不支持命名参数,则该代码将导致错误,因为只有一个参数值。

事实上,据我所知,MySQL本身并不原生支持命名参数。然而,实现和驱动程序通常足够聪明,可以模拟它或将其映射到数字参数。 - Wrikken

1

我不知道为什么你不能这样做。


我被困在使用DB2的恐龙时代。驱动程序无法识别命名参数。因此,如果需要多次使用相同的值,我只能多次添加。也许有一天我会和Doc以及Marty一起穿越到未来。 - eaglei22

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接