我正在使用SQL Server 2005,我想知道所有表的特定数据库上的所有授权.它还有助于找出为特定用户提供删除授权的所有表.
注意:这可能与此问题类似,但我无法让选定答案的解决方案正常工作(如果有人可以提供更好的示例,如何使用它,它也会有帮助)
在LINQ to SQL中,我得到异常" 不支持查询运算符'ElementAt'. "当尝试在从LINQ to SQL查询返回的IQueryable上使用ElementAt扩展方法时.
这是堆栈跟踪:
at System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpression mc)
at System.Data.Linq.SqlClient.QueryConverter.VisitMethodCall(MethodCallExpression mc)
at System.Data.Linq.SqlClient.QueryConverter.VisitInner(Expression node)
at System.Data.Linq.SqlClient.QueryConverter.ConvertOuter(Expression node)
at System.Data.Linq.SqlClient.SqlProvider.BuildQuery(Expression query, SqlNodeAnnotations annotations)
at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
at System.Data.Linq.Table`1.System.Linq.IQueryProvider.Execute[TResult](Expression expression)
at System.Linq.Queryable.ElementAt[TSource](IQueryable`1 source, Int32 index)
Run Code Online (Sandbox Code Playgroud)
现在我意识到要摆脱这个异常并使用ElementAt我可以在使用扩展方法之前调用'.ToList()'它会起作用.这很好,但我仍然不喜欢这是一个运行时异常(看起来像LSP违规)的事实.
有没有理由不支持这些方法?是不是因为它们无法轻易翻译成SQL?不支持哪些其他IQueryable/IEnumerable扩展方法,是否有某个列表?
避免运行时异常会很好.
我想知道如何更新现有的数据透视表数据源.我正在使用Microsoft.Office.Interop.ExcelExcel 2010 来定位用户.
我目前能够刷新数据透视表,它工作正常,但是当添加更多行时,我想在数据透视表数据源中包含这些行.例如,在Excel中查看时的数据透视表数据源是,DataSourceWorksheet!$A$2:$U$26并且我希望DataSourceWorksheet!$A$2:$U$86在更新/刷新Excel文件代码运行后将其更改为(60多行).
这是我的代码的简化版本
Application excelApplication = new Application();
Workbooks workbooks = excelApplication.Workbooks;
wrkBook = workbooks.Open(EXCEL_DOCUMENT_PATH, Missing.Value, false, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, true, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value);
/* update data source worksheet code here (omitted for example) */
Worksheet pivotWorkSheet = (Worksheet)wrkBook.Sheets[PIVOT_SHEET_NAME];
PivotTable pivot = (PivotTable)pivotWorkSheet.PivotTables(pivotTableName);
/* I would like to update the pivot tables data source here...
I could use Range object from data source worksheet...
Basically just want …Run Code Online (Sandbox Code Playgroud) 我在ASP.NET WebForms应用程序中使用了Model-View-Presenter的样板实现.My View有两个重要事件,一个表示用户已在域模型上填写了足够的字段以启动复制检查,另一个是常规的Save事件.我的伪代码看起来像这样:
public class ItemNewPresenter : PresenterBase<IItemNewView>
{
public IItemService Service { get; private set; }
public IItemNewView View { get; private set; }
public ItemNewPresenter(IItemService service, IItemNewView view)
{
Service = service;
View = view;
View.OnSave += DoItemSave;
View.OnItemIsDuplicateCheck+= DoItemIsDuplicateCheck;
}
private void DoItemIsDuplicateCheck(object sender, CheckItemDuplicateEventArgs e)
{
CheckForItemDuplication(e.Item);
}
private void CheckForItemDuplication(Item item){
if (Service.IsDuplicateItem(item))
{
View.RedirectWithNotification(BuildItemUrl(item), "This item already exists");
}
}
private void DoItemSave(object sender, SaveItemEventArgs e)
{
DoItemIsDuplicateCheck(this, e.ToItemDuplicateEventArgs());
Service.Save(e.Item);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试,用于确保从视图中引发OnItemIsDuplicateCheck时我的演示者行为正常:
[Test] …Run Code Online (Sandbox Code Playgroud)