小编usr*_*usr的帖子

为什么LINQ发送sp_executesql而不是直接执行SQL?

对于eaxmple,LINQ to SQL发送以下内容:

exec sp_executesql 
N'SELECT [t0].[HomeID], 
  [t0].[Bedrooms], 
  [t0].[ImageURL], 
  [t0].[Price], 
  [t0].[Available], 
  [t0].[Description]
FROM 
  [dbo].[Homes] AS [t0]
WHERE 
  ([t0].[Description] LIKE @p0) AND 
    ([t0].[Available] = @p1) AND 
    ([t0].[Price] >= @p2) AND ([t0].[Price] <= @p3)
ORDER BY 
  [t0].[Price] DESC',
N'@p0 nvarchar(4000),@p1 int,@p2 int,@p3 int',
@p0=N'%private%',
@p1=1,
@p2=200000,
@p3=750000
Run Code Online (Sandbox Code Playgroud)

为什么使用sp_executesql?

sql linq-to-sql

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

如何处理ASP.NET中未处理的线程异常?

如何处理ASP.NET应用程序处理非请求后台线程上发生的未处理异常(由于错误)?

默认情况下,此类异常会导致进程终止.这在设置ASP.NET工作进程时是不可接受的,因为并发运行的请求会无法预料地中止.这也是一个性能问题.

请求线程上的异常不是问题,因为ASP.NET处理它们(通过显示错误页面).

AppDomain.UnhandledException事件允许观察发生了异常,但此时无法阻止终止.

这是一个需要粘贴到ASPX页面代码隐藏的repro.

protected void Page_Load(object sender, EventArgs e)
{
    var thread = new Thread(() =>
        {
            throw new InvalidOperationException("some failure on a helper thread");
        });
    thread.Start();
    thread.Join();
}
Run Code Online (Sandbox Code Playgroud)

我所知道的唯一解决方案是永远不要让异常"逃避"未处理.对此还有其他更全面彻底的解决方案吗?

.net asp.net multithreading exception unhandled-exception

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

是jQuery模块化吗?如何修剪它?

压缩,jQuery大小约为70KB(未压缩:> 200KB).我没有看到像jQuery UI那样排除很少使用的部分的方法.如何减少jQuery的(压缩和缩小的)文件大小?我很担心,因为拨号线路和慢速机器/浏览器在我的网站用户中很常见.

我主要关注的是解析浏览器中JavaScript的持续时间.在较旧的机器上,这需要数百毫秒.网络传输是一次性成本,这使得它更容易忍受.

html javascript jquery jquery-ui

7
推荐指数
3
解决办法
1672
查看次数

如何在C#中定义自己的LINQ构造?

我有这样的代码:

class PacketDAO{
    //...
    public void UpdatePacketStatus(Guid packetID, Status status)
    {
        using (var ctx = new DataContext())
        {
            var packet = ctx.Packet.SingleOrDefault(p => p.PacketID == packetID);
            packet.Status = status;
            ctx.SubmitChanges();
        }
    }

    public void UpdatePacketTime(Guid packetID, DateTime? time)
    {
        using (var ctx = new DataContext())
        {
            var packet = ctx.Packet.SingleOrDefault(p => p.PacketID == packetID);
            packet.Time = time;
            ctx.SubmitChanges();
        }
    }
    //...
}       
Run Code Online (Sandbox Code Playgroud)

我们可以注意到代码中有些无聊的重复.

因此,以一种我们可以负担得起的方式编写一个通用的方法Update会更好:

packet.Update<Guid, Packet>(guid, p => p.Time = DateTime.Now);
packet.Update<Guid, Packet>(guid, p => p.Status = Status.Ok);
Run Code Online (Sandbox Code Playgroud)

请告诉我,是否可以编写这样的方法?

我可以从中学到哪本书? …

c# linq

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

TPL取消延续从未调用取消任务

我在使用TPL的代码中进行了以下设置:

  • 我班上的一个字段:private CancellationTokenSource _cancellationTokenSource;
  • 每次我创建使用该特定canceltoken的TPL任务时,此CancellationTokeSource都会被实例化

实际的TPL任务看起来像这样:

var dataRetrievalTask = new Task<List<myType>>(() =>
            {
                // retrieve data and do something
                foreach (var a in retrievalMethod())
                {
                    if (_cancellationTokenSource.Token.IsCancellationRequested)
                        _cancellationTokenSource.Token.ThrowIfCancellationRequested();

                        // do something if not cancelled
                    }
                }

                return filledListOfMyType;

            }, _cancellationTokenSource.Token);

            // define what shall happen if data retrievel finished without any problems
            var writingLoadedDataToGridTask = dataRetrievalTask.ContinueWith(task =>
            {
              // do something in case we ran to completion without error
            }, _cancellationTokenSource.Token, TaskContinuationOptions.OnlyOnRanToCompletion, currentScheduler);

            // what to do in case cancellation …
Run Code Online (Sandbox Code Playgroud)

.net multithreading task task-parallel-library

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

两阶段提交是否可以防止最终提交失败?

假设分布式事务中涉及的所有数据库都使用两阶段提交信号实现,它们已准备好提交并具有必要的锁定.协调器发出提交信号,所有数据库都执行它们的部分事务,但是一个SQL数据库由于编程监督而未能考虑这种可能性而遇到零除错误.由于协调员已经发信号通知每个人因为除零而发生的事情是什么?

database transactions 2phase-commit distributed-transactions

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

C++中的互斥量必须与某个对象或变量绑定吗?

我对线程有点新,我试图理解它在C++ 11中是如何工作的.我班上的教授给了我们这个示例代码来演示互斥锁的用法:

#include <list> 
#include <mutex> 
#include <algorithm>

std::list<int> some_list; // A data structure accessed by multiple threads
std::mutex some_mutex; // This lock will prevent concurrent access to the shared data structure

void
add_to_list(int new_value) {
    std::lock_guard<std::mutex> guard(some_mutex); // Since I am going to access the shared data struct, acquire the lock
    some_list.push_back(new_value); // Now it is safe to use some_list. RAII automatically releases lock at end of function }
}

bool
list_contains(int value_to_find) {
    std::lock_guard<std::mutex> guard(some_mutex); // Must get …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading mutex

7
推荐指数
2
解决办法
1864
查看次数

基于非零的多维数组

我正在使用Interopt.ExcelAPI 从电子表格中提取单元格.我打电话的时候:

object[,] rangeValues = (object[,])range.get_Value(XlRangeValueDataType.xlRangeValueDefault);

并设置断点并检查rangeValues,我看到元素从[1,1]"foo",[1,2]"bar"等开始.

但是,如果我这样做 string[,] test = new string[2, 2] { { "one", "two" }, { "three", "four" } };

元素从[0,0]开始.Excel API如何使用空元素构造多维数组?我尝试添加null但你仍然有一个[0,0]条目.他们的目标没有显示出来.

c# com excel interop multidimensional-array

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

没有活动连接时,SqlConnection.OpenAsync()会挂起

当我运行这个:

using(SqlConnection connection = new SqlConnection(connectionString)){
    await connection.OpenAsync();
}
Run Code Online (Sandbox Code Playgroud)

它挂connection.OpenAsync()在线上.

如果我在Sql Server Management Studio中查看数据库有多少个活动连接,那么只有一个:可能是此代码使用的连接.所以,我不确定我是否正在从应用程序池中耗尽连接.

我究竟做错了什么?

sql-server ado.net

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

不区分大小写的字符串替换正确使用"ß"<=>"ss"之类的连字

我已经构建了一个小的asp.net表单,可以搜索某些内容并显示结果.我想在搜索结果中突出显示搜索字符串.例:

Query: "p"
Results: a<b>p</b>ple, banana, <b>p</b>lum
Run Code Online (Sandbox Code Playgroud)

我的代码是这样的:

public static string HighlightSubstring(string text, string substring)
{
 var index = text.IndexOf(substring, StringComparison.CurrentCultureIgnoreCase);
 if(index == -1) return HttpUtility.HtmlEncode(text);
 string p0, p1, p2;
 text.SplitAt(index, index + substring.Length, out p0, out p1, out p2);
 return HttpUtility.HtmlEncode(p0) + "<b>" + HttpUtility.HtmlEncode(p1) + "</b>" + HttpUtility.HtmlEncode(p2);
}
Run Code Online (Sandbox Code Playgroud)

我主要是工作,但尝试用例如HighlightSubstring("ß", "ss").这崩溃是因为在德国,"ß"和"ss"被认为是相同IndexOf方法,但它们有不同的长度!

现在,如果有办法找出"文本"中的匹配有多长,那就没关系了.请记住,这个长度可以!= substring.Length.

那么如何找出IndexOf在存在连字和外来语言字符时出现的匹配长度(在这种情况下是连字)?

.net culture encoding localization cultureinfo

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