可以通过查询字符串发送可变数量的参数。在我的形式中,查询发送一些可能并不总是被填充的参数,即它们将被发送为id=""
。这意味着如果一个参数没有进入,我的TableAdapter中使用的函数将带来错误的结果。即它收到了7个参数,而它期待8个(或者第8个将是NULL)。
我能想到的唯一解决方法是制作重载函数。但这意味着我将不得不制作64个重载函数(8个参数)。太多的工作,这让我觉得可能有一些其他方式我可以完成工作而不需要64个功能。
有没有?
使用MSSQL处理ASP.NET
答案 0 :(得分:0)
64个重载函数显然不是一个可行的解决方案。现在可能是查看WorkTable适配器代码的时候了,因为它听起来没有非常优雅地处理特殊值。
我会跟ashelvey建议使用8个参数的一个方法,并确保处理代码足够强大以处理空值或空字符串。
答案 1 :(得分:0)
介绍an object that is specifically for the parameters。
public void DoWork(params OperationArgs args[]) { /* code */ }
class OperationArgs {
public int? Id { get; set; }
public string Keywords { get; set; }
// etc
}
答案 2 :(得分:0)
我们正在使用一项工作,它对我们来说非常有效。
您不需要进行任何重载功能。您可以传递所有参数的值,如果有空值,您只需传递'%'
,您也不需要对查询执行任何操作。以下是SQL查询的示例:
Select * from Student where ID = 5 AND RollNo = '%' AND CourseID = '%'
如果在SQL Server中检查上述查询,它将为您提供正确的结果。
注意:我没有使用TableAdapter
对此进行测试,但我相信它会起作用。