小编use*_*722的帖子

无法在生产ASP.net网站上加载文件或程序集Microsoft.SqlServer.SqlClrProvider,它在哪里?

在我的ASP.net网站上,我有一个参考Microsoft.SQLserver.SMO.我将此引用复制到我的生产服务器上并且无法加载错误Microsoft.SqlServer.Management.Sdk.Sfc.通过从中复制dll来修复此错误

C:\Program files\Microsoft Sql Server\110\SDK\Assembilies
Run Code Online (Sandbox Code Playgroud)

然而,我得到了同样的错误,但Microsoft.SqlServer.SqlClrProvider无处可寻.

我在哪里可以找到SqlClrProviderDLL?它适用于我的localhost所以它必须在某个地方.

.net c# sql-server asp.net

21
推荐指数
5
解决办法
3万
查看次数

Linq to Entity比较字符串忽略空格

当使用linq实体进行字符串比较时,将忽略空格.

在我的表中,我有一个nchar(10)列,因此如果不是10个字符,则保存的任何数据将使用空格填充其余数据.下面我将"ncharTextColumn"与"Four"字符串进行比较.甚至认为ncharText将等于 "Four "它导致匹配,"result"变量将包含1条记录

TestEntities1 entity = new TestEntities1();
var result = entity.Table_1.Where(e => e.ncharText == "Four");
Run Code Online (Sandbox Code Playgroud)

有没有解释这个和解决它的方法或我将不得不在任何comaprisons之前调用我的查询ToList.

var newList = result.ToList().Where(e => e.ncharText == "Four");
Run Code Online (Sandbox Code Playgroud)

此代码现在正确地返回0记录,因为它考虑了空格.但是,在比较之前调用list可能会导致将大型集合加载到内存中,而这些内存最终不会被使用.

c# linq-to-entities entity-framework

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

Azure Blob 存储下载文件而不是在浏览器中打开

我正在使用此代码将文件上传到 Azure blob 存储,container我的 CloudBlobContainer 在哪里

    public void SaveFile(string blobPath, Stream stream)
    {
        stream.Seek(0, SeekOrigin.Begin);
        CloudBlockBlob blockBlob = container.GetBlockBlobReference(virtualPath);

        blockBlob.Properties.ContentDisposition = 
"attachment; filename=" + Path.GetFileName(virtualPath);

        blockBlob.UploadFromStream(stream);
    }
Run Code Online (Sandbox Code Playgroud)

然后,当用户单击网页中的文件时,我尝试触发下载,提示他们保存/打开文件。我通过调用一个返回到 blob URL 的重定向的 Action 来完成此操作。

    public ActionResult LoadFile(string path)
    {    
        string url = StorageManager.GetBlobUrlFromName(path);
        return Redirect(url);
    }
Run Code Online (Sandbox Code Playgroud)

问题是这将在浏览器中打开文件,例如,当我希望用户留在我的页面上但开始下载文件时,用户将被重定向离开我的网站并在浏览器中显示 .jpg 文件。

c# asp.net asp.net-mvc azure azure-blob-storage

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

如果用户可以按任何列进行过滤,那么索引每一列是否是个好主意?

在我的应用程序中,用户可以创建具有三种列类型(文本、数字和日期)的自定义表。它们最多可以有 20 列。我使用nvarchar(430)for text、decimal(38,6)numeric 和datetime以及 Identity Id 列基于他们的模式创建了一个 SQL 表。

许多这些表可能由不同的用户创建,并且数据可能会因用户上传新的 CSV 文件而频繁更新。为了在用户数据上传过程中获得最佳性能,我们将表格截断以去除现有数据,然后进行批量 BULK INSERT。

用户可以根据他们建立的过滤器进行选择,过滤器可以包括任意数量的列。我的问题是,在此选择过程中,某些包含大量行的表的性能会很差。为了解决这个问题,我考虑添加索引,但由于我们不知道 WHERE 条件中将包含哪些列,因此我们必须对每一列进行索引。

例如,在本地 SQL 服务器上,一个只有超过一百万行且其中 6 个列的 WHERE 条件的表在第一次运行时将花费大约 8 秒,然后在随后的运行中不到一秒。在每一列上都有索引,第一次运行查询时,它将在不到一秒的时间内运行。当我们在 SQL Azure 数据库上进行测试时,这个性能问题被放大了,其中第一次运行相同的查询将花费一分钟,并且在后续运行中没有改善,但使用索引需要 1 秒。

那么,当用户创建列时,在每列上添加索引是一个合适的解决方案,还是有更好的解决方案?

sql sql-server indexing azure-sql-database

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

为什么值为128的char为空字符串而不是欧元符号€

在这里的asci表之后的ASCII表中,128的值是a
但是在C#中执行以下代码并不返回欧元符号

char expectedEuro = Convert.ToChar(128);
Run Code Online (Sandbox Code Playgroud)

尝试将字符转换为字符总是会产生一个OverflowException因为它对于无符号字节而言太大

Convert.ToByte(`€`);
Run Code Online (Sandbox Code Playgroud)

这会导致问题,因为当值为128但C#输出空字符时,来自另一个系统的编码 输出字符.

有没有解释这个以及我可以做些什么来解决这个问题?

c# ascii char

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