Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过TableAdapter对数据库的每次访问添加一个查询_C#_Asp.net_Sql Server_Tableadapter_Strongly Typed Dataset - Fatal编程技术网

C# 通过TableAdapter对数据库的每次访问添加一个查询

C# 通过TableAdapter对数据库的每次访问添加一个查询,c#,asp.net,sql-server,tableadapter,strongly-typed-dataset,C#,Asp.net,Sql Server,Tableadapter,Strongly Typed Dataset,我有一个使用TableAdapters访问SQL Server数据库的项目,在这个项目中,我现在必须实现以下内容:在每次访问数据库之前,我必须使用登录用户的用户名添加一个SELECT查询 通过该查询添加新的TableAdapter显然是一个解决方案。然而,有数百个对数据库的访问,在每次访问之前必须添加该调用,这是一件乏味的事情。因此,我正在寻找一种解决方案,它可以最大限度地减少我在代码中所做的更改 我尝试添加一个构造函数,其中包含查询调用-我想我可以使用分部类添加一个构造函数,将查询调用添加到该

我有一个使用TableAdapters访问SQL Server数据库的项目,在这个项目中,我现在必须实现以下内容:在每次访问数据库之前,我必须使用登录用户的用户名添加一个SELECT查询

通过该查询添加新的TableAdapter显然是一个解决方案。然而,有数百个对数据库的访问,在每次访问之前必须添加该调用,这是一件乏味的事情。因此,我正在寻找一种解决方案,它可以最大限度地减少我在代码中所做的更改

我尝试添加一个构造函数,其中包含查询调用-我想我可以使用分部类添加一个构造函数,将查询调用添加到该构造函数,然后调用我的新构造函数而不是默认构造函数。但是后来我注意到我没有在每次访问之前调用构造函数,这意味着在每次访问数据库之前都不会执行查询

我想使用一个事件,但唯一可用的事件是RowUpdated、RowUpdated和FillError,所有这些事件都发生在从数据库返回后,并且它们只发生在填充的数据集上,而不发生在标量函数上


那么,如何在代码更改最少的情况下添加新查询呢?

这只是一个想法。。也许你可以用那条sql语句定义一个基类,所有其他的请求都应该扩展这个类,然后你可以重写一个函数,在第一行只添加基类调用。。。您还可以在您的sql DB中定义触发器,您可以在每次访问特定表时触发事件,只需触发一个事件即可,该事件是您选择的查询库@LiranBo。其他请求使用相关的TableAdapter类,因此无法扩展任何类。。。关于触发器-我们认为,但是,我们要选择的数据在数据库中不可用,我们必须从代码中传递它TableAdapter类是否已密封?如果没有,您可以扩展它并将其用作基类。。。我在谷歌上搜索了一下,找到了,也许它能帮上忙。再次感谢你,@LiranBo。您建议的是使用分部类,我也考虑过,但这仍然意味着更改代码中使用TableAdapter类的所有位置,以在分部类中使用新功能