小编cra*_*mmy的帖子

什么是VB.NET相当于C#的'using'块

我在VB.NET编码.

目前,我在Try/Catch块中包含对象初始化和使用,然后在Finally块中将其拆除(dispose,close,设置为nothing).问题是,C#'using'块很容易使用,并且会在我的代码中清理它们.

是否有VB.NET等价物?或者是我的最终阻止解决方案唯一的方法?

c# vb.net

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

没有为Windows PowerShell版本2注册管理单元

我正在尝试在未安装SQL Server Management Studio但已安装Microsoft SQL Server 2008 R2 SP2 Feature Pack的所有相关软件包的Web服务器上运行Powershell脚本.您需要安装这些小块,以便Powershell能够运行SQL命令.

然后我运行了这个安装脚本,为使用Powershell运行的SQL Server命令准备环境:

$ErrorActionPreference = "Stop"

$sqlpsreg="HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.SqlServer.Management.PowerShell.sqlps"

if (Get-ChildItem $sqlpsreg -ErrorAction "SilentlyContinue")
{
    throw "SQL Server Powershell is not installed."
}
else
{
    $item = Get-ItemProperty $sqlpsreg
    $sqlpsPath = [System.IO.Path]::GetDirectoryName($item.Path)
}



/* Preload the assemblies. Note that most assemblies will be loaded when the provider
 is used. if you work only within the provider this may not be needed. It will reduce
 the shell's footprint if you leave these out.*/ …
Run Code Online (Sandbox Code Playgroud)

powershell pssnapin sql-server-2008

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

如何使用 Linq 选择具有一对多关系的所有人

我有两个表:

CREATE TABLE Thing (
    Id int,
    Name nvarchar(max)
);

CREATE TABLE SubThing (
        Id int,
        Name nvarchar(max),
        ThingId int (foreign key)
    );
Run Code Online (Sandbox Code Playgroud)

我想选择所有带有 SubThings 列表的事物并将它们设置为 ThingViewModel。

Thing ViewModel 很简单:

public class ThingViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<SubThingViewModel> SubThings { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

SubThingViewModel 是:

public class SubThingViewModel
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我已经选择了这样的事物记录:

List<ThingViewModel> things …
Run Code Online (Sandbox Code Playgroud)

.net c# linq entity-framework one-to-many

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

哪个更快 - 使用块或Try/Catch/Finally

这是一个后续问题,以

我应该坚持使用Try/Catch/Finally构造,还是使用Using构造?

Try/Catch/Finally的示例代码:

Dim oRequest As WebRequest
Dim oResponse As HttpWebResponse = Nothing
Dim dataStream As Stream = Nothing
Dim reader As StreamReader = Nothing
Dim responseFromServer As String

Try
        sNewCustomerURL = NewCustomerQueryStringPrepare()

    'make the call to the webservice to add a new customer
    oRequest = WebRequest.Create(sNewCustomerURL)

    oRequest = CType(oRequesC, HttpWebRequest)
    oRequest.Method = "GET"
    oResponse = CType(oRequest.GetResponse(), HttpWebResponse)

    dataStream = oResponse.GetResponseStream()
    reader = New StreamReader(dataStream)
    responseFromServer = reader.ReadToEnd()

        Dim xml As New XmlDocument()
    xml.LoadXml(responseFromServer)
    Dim node As XmlNodeList = …
Run Code Online (Sandbox Code Playgroud)

vb.net performance using

6
推荐指数
1
解决办法
2575
查看次数

如何使用SOAP从经典ASP调用.Net Web服务方法

我试图使用SOAP从Classic ASP调用.Net Web服务.我已经构建了以下代码作为测试,并继续返回一个400 Bad Request错误的空响应者.我做错了什么,或者这个问题可能在.Net方面?

'set up xmlhttp to checkout server
Dim oRequest
Set oRequest = Server.CreateObject("MSXML2.ServerXMLHTTP")

'setting this option will allow ServerXMLHTTP to ignore the certificate errors it encounters.
oRequest.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS


' resolve, connect, send, receive - in milliseconds
oRequest.setTimeouts 10000, 10000, 10000, 10000

'set the URL
msURL = "[redacted]"

msSOAP = "<?xml version=""1.0"" encoding=""utf-8"" ?>"
msSOAP = msSOAP & "<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">"
msSOAP = msSOAP & "<SOAP:Body>"
msSOAP = msSOAP & "<[Some Service] xmlns=""http://localhost"">"
msSOAP = …
Run Code Online (Sandbox Code Playgroud)

.net soap web-services asp-classic

6
推荐指数
1
解决办法
8241
查看次数

我需要在页面加载期间添加throbber的示例

有人有一个代码示例在asp.net页面加载期间运行动画的throbber吗?不止一个例子是值得赞赏的.

javascript asp.net throbber

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

如何查找 Powershell 数组是否包含另一个数组的对象

我必须在 Powershell 中排列数组。每个数组包含一个对象数组。这些对象有两个属性:

名称:字符串
ID:GUID

第一个 Array 中有 4413 个对象,第二个有 4405 个对象。计数无关,但我只提到它们是为了注意 Array1 和 Array2 的内容不同。

这是我当前的代码(伪):

#Fill Array1
$Array1 = Fill-Array1

#Fill Array2
$Array2 = Fill-Array2

#Loop through the arrays and write out the names of all items in Array2 that are different than Array1
ForEach($Val in $Array2)
{
    $Name = $Val.Name

    If($Array1 -notcontains $Val) //this does not work
    {
        Write-Host $Name
    }
}
Run Code Online (Sandbox Code Playgroud)

检查 Array1 中对象是否存在的正确方法是什么?是我做嵌套循环的唯一选择吗?

更新,使用下面Manu P的答案,以下是我实施解决方案的方式:

#Fill Array1
    $Array1 = Fill-Array1

    #Fill …
Run Code Online (Sandbox Code Playgroud)

arrays powershell

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

位列的唯一约束仅允许1个真(1)值

我有这张桌子:

CREATE TABLE [tblExample](
    [ExampleID] [int] IDENTITY(1,1) NOT NULL,
    [WordsAndStuff] [nvarchar](max) NOT NULL,
    [Active] [bit] NOT NULL
Run Code Online (Sandbox Code Playgroud)

我希望Active列具有唯一约束,该约束只允许一条记录为真(1).在这一点上,我不需要一直是一个真正的记录,只是不能超过其中一个.

我该如何编写约束?

t-sql sql-server constraints unique

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

SQL Server计算列在简单的select语句上降低了性能

背景:

以前,我的公司使用用户定义的函数来对存储过程的where子句中的某些数据进行html编码.示例如下:

DECLARE @LName --HTML encoded last name as input parameter from user

SELECT * 
  FROM (SELECT LName
          FROM SomeView xtra
         WHERE (( @LName <> '' 
              AND dbo.EncodingFunction(dbo.DecodingFunction(xtra.LName)) = @LName) 
           OR @Lname=''))
Run Code Online (Sandbox Code Playgroud)

我为了清楚起见简化了这一点.

问题是,当带有此查询的存储过程快速连续调用45次时,具有62,000条记录的表的平均性能大约为85秒.当我删除UDF时,性能提高到1秒以上,以便运行sproc 45次.

因此,我们咨询并决定了一个解决方案,该解决方案包括视图访问的表中的计算列SomeView.计算列被写入表定义,如下所示:

[LNameComputedColumn] AS (dbo.EncodingFunction(dbo.DecodingFunction([LName])))
Run Code Online (Sandbox Code Playgroud)

然后,我运行了一个更新表的过程,并自动为所有62,000条记录填充该计算列.然后我将存储过程查询更改为以下内容:

DECLARE @LName --HTML encoded last name as input parameter from user

SELECT * FROM
      (SELECT LNameComputedColumn
      FROM SomeView xtra
      WHERE  (( @LName <> '' AND xtra.LNameComputedColumn=@LName) OR @Lname='')
Run Code Online (Sandbox Code Playgroud)

当我运行该存储过程时,45次执行的平均运行时间增加到大约90秒.我的改变实际上使问题变得更糟!

我究竟做错了什么?有没有办法改善表现?

作为旁注,我们目前正在使用SQL Server 2000并计划很快升级到2008 R2,但所有代码都必须在SQL Server 2000中运行.

sql sql-server stored-procedures calculated-columns user-defined-functions

3
推荐指数
1
解决办法
5840
查看次数

如何创建用于依赖的Singleton注入Azure存储客户端和容器

我有一个类,该类具有执行Azure存储功能的方法,当前,每次调用StorageContainer,BlobClient和Container时,我都会创建它:

private readonly IAzureStorageConfig _config;

public SaveImageBlob(IAzureStorageConfig config)
{
    _config = config;
}

public async Task<T> ExecuteAsync(ImageSaveInput input)
{

    //get the storage account from the connection string
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(_config.ConnectionString);

    //instantiate the client
    CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

    //set the container
    CloudBlobContainer container = blobClient.GetContainerReference(_config.ImagesContainerName);

    //... do things and stuff
}
Run Code Online (Sandbox Code Playgroud)

现在,我要将其从SaveImageBlob.ExecuteAsync方法中剔除,并将依赖项注入到类中,因此Azure存储项仅实例化一次。

我目前有这样的界面:

namespace Domain.Interfaces
{
    public interface IAzureStorage
    {
        CloudStorageAccount StorageAccount { get; }

        CloudBlobClient BlobClient { get; }

        CloudBlobContainer Container { get; }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我对如何实现该接口一无所知。

一旦实现了接口,我想我将把SaveImageBlob.ExecuteAsync方法更改为此:

private …
Run Code Online (Sandbox Code Playgroud)

.net singleton dependency-injection azure azure-storage

2
推荐指数
1
解决办法
2132
查看次数

Enumerable.Any()在大型Linq数据集上非常慢

我正在运行这样的代码:

var somethings = db.Somethings.Select(s => new SomethingViewModel
{
    Id = s.Id,
    Name = s.Name,
    IsActive = s.IsActive
    SubSomethings = s.SubSomethings.Select(ss => new SubSomethingViewModel
    {
        Id = ss.Id,
        Name = ss.Name,
        IsActive = ss.IsActive
    }).Where(wss => wss.IsActive)                        
}).Where(ws => ws.IsActive && (ws.SubSomethings.Any())) //remove elements if no SubSomethings
.ToList();
Run Code Online (Sandbox Code Playgroud)

如您所见,这是一对多的关系.Something中有一个SubSomethings列表.如果我取出&&(ws.SubSomethings.Any()),我会得到一个非常快的列表.

但是,我想只在列表中包含至少有一个SubSomething的Somethings.我也尝试了以下并获得了同样可怕的效率:

var somethings = db.Somethings.Select(s => new SomethingViewModel
{
    Id = s.Id,
    Name = s.Name,
    IsActive = s.IsActive
    SubSomethings = s.SubSomethings.Select(ss => new SubSomethingViewModel
    {
        Id = ss.Id,
        Name = ss.Name, …
Run Code Online (Sandbox Code Playgroud)

.net c# linq entity-framework entity-framework-core

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

System.FormatException:'Base-64 char数组或字符串的长度无效.'

我在这里用头撞墙,用这个简单的代码不起作用:

string middle = "eyJzdWIiOiJtYXR0d2ViZXIiLCJqdGkiOiJlMWVmNjc5Mi02YTBjLTQ4YWUtYmQzNi0wZDlmMTVlMDFiY2UiLCJpYXQiOjE0OTMwOTI0OTQsIm5iZiI6MTQ5MzA5MjQ5NCwiZXhwIjoxNDkzMjY1Mjk0LCJpc3MiOiJFQ29tbVdlYkFQSTIiLCJhdWQiOiJFQ29tbVdlYkNsaWVudDIifQ"

byte[] newBytes = Convert.FromBase64String(middle);
middle = Encoding.UTF8.GetString(newBytes);
Run Code Online (Sandbox Code Playgroud)

就这么简单!然而我在标题中得到了错误.

另外,我在https://www.base64decode.org/上运行它,它完美地解码.

c# base64 decode

0
推荐指数
1
解决办法
4723
查看次数