小编Joe*_*ggs的帖子

如何查看SQL数据库的所有授权?

我正在使用SQL Server 2005,我想知道所有表的特定数据库上的所有授权.它还有助于找出为特定用户提供删除授权的所有表.

注意:这可能与此问题类似,但我无法让选定答案的解决方案正常工作(如果有人可以提供更好的示例,如何使用它,它也会有帮助)

sql permissions sql-server-2005

16
推荐指数
4
解决办法
5万
查看次数

为什么LINQ to SQL不支持查询运算符'ElementAt'?

在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扩展方法,是否有某个列表?

避免运行时异常会很好.

c# extension-methods linq-to-sql

11
推荐指数
2
解决办法
6972
查看次数

如何使用C#更新数据透视表数据源?

我想知道如何更新现有的数据透视表数据源.我正在使用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)

c# excel-interop

8
推荐指数
1
解决办法
1万
查看次数

TDD可以强制创建"虚假"​​依赖项

我在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)

c# oop tdd unit-testing dependency-injection

4
推荐指数
1
解决办法
464
查看次数