小编Chr*_*ris的帖子

ASP.NET MVC的Spark T4模板

我只是好奇是否已经存在任何匹配/类似于开箱即用的Web表单视图模板(创建,编辑,详细信息等)的Spark T4模板.我的Google技能并没有让我得到任何结果.

asp.net-mvc t4 spark-view-engine

14
推荐指数
1
解决办法
974
查看次数

使用Excel Interop删除空行

我有用户提供的需要转换为PDF的excel文件.使用excel互操作,我可以做到这一点.ExportAsFixedFormat().当工作簿有数百万行时,我的问题出现了.这将变成一个有50k +页面的文件.如果工作簿在所有这些行中都有内容,那就没问题.每次出现其中一个文件时,可能有50行有内容,其余的都是空白.我怎样才能删除空行,以便将其导出为合适大小的PDF?

  1. 我已经尝试从最后一行开始,一个接一个,CountA用来检查行是否有内容,如果有,则删除它.这不仅需要永远,这似乎在大约100k行后失败,并出现以下错误:

    无法计算表达式,因为代码已优化或本机帧位于调用堆栈之上.

  2. 我尝试过使用SpecialCells(XlCellType.xlCellTypeLastCell, XlSpecialCellsValue.xlTextValues)但如果任何单元格有格式(如bg颜色),则包含一行.

  3. 我尝试过使用Worksheet.UsedRange然后删除所有内容,但UsedRange与第二点有同样的问题.


这是我试过的代码:

for (int i = 0; i < worksheets.Count; i++)
{
    sheet = worksheets[i + 1];
    rows = sheet.Rows;
    currentRowIndex = rows.Count;
    bool contentFound = false;

    while (!contentFound && currentRowIndex > 0)
    {
        currentRow = rows[currentRowIndex];

        if (Application.WorksheetFunction.CountA(currentRow) == 0)
        {
            currentRow.Delete();
        }
        else
        {
            contentFound = true;
        }

        Marshal.FinalReleaseComObject(currentRow);
        currentRowIndex--;
    }

    Marshal.FinalReleaseComObject(rows);
    Marshal.FinalReleaseComObject(sheet);
}
Run Code Online (Sandbox Code Playgroud)
for (int i = 0; i < worksheets.Count; …
Run Code Online (Sandbox Code Playgroud)

c# office-interop excel-interop

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

SQL IN中的SQL IN等价物

是否有一种"好的"方法来为SharePoint创建这样的类似的CAML查询?

SELECT *
FROM table
WHERE Id IN (3, 12, ...)
Run Code Online (Sandbox Code Playgroud)

还是我陷入了嵌套<Or>节点的噩梦?


编辑:这是我生成<Or>节点的解决方案.

/// Simulates a SQL 'Where In' clause in CAML
/// </summary>
/// <param name="columnType">Specifies the data type for the value contained by the field.</param>
/// <returns>Nested 'Or' elements portion of CAML query</returns>
public static string CamlIn<T>(string internalFieldName, string columnType, T[] values)
{
    XDocument doc = new XDocument();
    XElement prev = null;
    int index = 0;

    while (index < values.Length)
    {
        XElement element = …
Run Code Online (Sandbox Code Playgroud)

sql sharepoint-2007 caml where-in

12
推荐指数
3
解决办法
7705
查看次数

分页AD查询有时会失败

我有一些代码(下面)每15分钟运行一次.有时它将无法使用以下错误查询AD:

System.DirectoryServices.Protocols.DirectoryOperationException: The server does not support the control. The control is critical.
   at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request, TimeSpan requestTimeout)
Run Code Online (Sandbox Code Playgroud)
  • 当它成功运行时,整个过程大约需要一分钟才能运行,AD查询大约需要30秒,共32页.
  • 当它失败时,它始终在第一页上.
  • 据我所知,它似乎没有在一个模式中失败(总是在一天的不同时间).

在谷歌搜索该错误后,我发现了两个SO问题(,),指向AuthType.Ntlm用于解决问题.但这对我来说并没有解决.另一个人说要检查服务器是否支持分页(确实如此).

关于为什么会发生这种情况的任何想法?

var attributesToReturn = new[] {
    "givenName",
    "sn",
    "middleName",
    "extensionAttribute8",
    "department",
    "sAMAccountName",
    "userAccountControl"
};
var filter = "(&(objectclass=user)(!(objectclass=computer))(sn=*)(givenName=*)(extensionAttribute8=*)(|(sn=a*)(sn=b*)(sn=c*)(sn=d*)(sn=e*)(sn=f*)(sn=g*)(sn=h*)(sn=i*)(sn=j*)(sn=k*)(sn=l*)(sn=m*)(sn=n*)(sn=o*)(sn=p*)(sn=q*)(sn=r*)(sn=s*)(sn=t*)(sn=u*)(sn=v*)(sn=w*)(sn=x*)(sn=y*)(sn=z*)))";
var currentBatch = 1;
var searchRequest = new SearchRequest("DC=foo,DC=bar,DC=baz", filter, SearchScope.Subtree, attributesToReturn);
var pageRequestControl = new PageResultRequestControl(500);
searchRequest.Controls.Add(pageRequestControl);

using (var ldapConnection = new LdapConnection("server.foo.bar.baz"))
{
    ldapConnection.Credential = new NetworkCredential("user", "pass", …
Run Code Online (Sandbox Code Playgroud)

c# active-directory

7
推荐指数
1
解决办法
293
查看次数

使用Powershell更新IIS中的主机标头

目标:使用PowerShell更新IIS7.5站点的现有主机头

问题:Set-WebBinding需要我没有的网站名称.我确实有HostHeader.

场景:我在IIS中有多个站点.其中一些有一个主机头,其中包含我想要更改的特定字符串.

Site1 - site1.stuff.domain.net
Site2 - site2.stuff.domain.net
Site3 - site3.domain.net
Run Code Online (Sandbox Code Playgroud)

我想更改.stuff标题中包含的所有网站.

我正在使用Get-WebBinding获取所有网站及其绑定的列表.然后我循环遍历它们并检查是否bindingInformation包含.stuff.我修改字符串我喜欢然后去更新标题

Set-WebBinding -HostHeader $originalHeader -SetProperty HostHeader -Value $newHeader
Run Code Online (Sandbox Code Playgroud)

显然,您必须拥有该网站的名称才能使用Set-WebBinding,不同的Get-WebBinding是,您可以根据HostHeader(Get-WebBinding -HostHeader $someValue)获取绑定.有没有一种方法可以Set-WebBindingName不指定网站的情况下使用?有没有办法从网站上获取该网站的名称Get-WebBinding?有替代品Set-WebBinding吗?或者有更好的方法来做我想做的事情吗?

powershell iis-7.5

5
推荐指数
1
解决办法
4135
查看次数

Ormlite Where-Contains失败

我正在尝试使用子句Enumerable.Contains内部查询我的数据库SqlExpressionVisitor.Where.编译lambda时,我得到一个空引用异常.

当访问者进入foreach (Object e in inArgs)(当前行1067)内部时SqlExpressionVisitor.VisitArrayMethodCall,它会因为inArgs为空而窒息.以下是导致错误的示例.我不太了解lambda /表达式,知道为什么会发生这种情况.

所以我的问题是,我没有Where正确使用该条款或这是一个错误吗?

class Program
{
    static void Main(string[] args)
    {
        var connectionFactory = new OrmLiteConnectionFactory(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;User Instance=True", SqlServerDialect.Provider);
        SetupDb(connectionFactory);           

        using (var db = connectionFactory.OpenDbConnection())
        {
            var numbersToSelect = new int[2] { 1, 2 };
            db.Select<SomeObject>(e => e.Where(o => numbersToSelect.Contains(o.Number)));
        }
    }

    static void SetupDb(IDbConnectionFactory connectionFactory)
    {
        using (var db = connectionFactory.OpenDbConnection())
        {
            db.DropTable<SomeObject>();
            db.CreateTable<SomeObject>();
            db.Insert(new SomeObject { Number = 1 …
Run Code Online (Sandbox Code Playgroud)

servicestack ormlite-servicestack

5
推荐指数
2
解决办法
1586
查看次数