对于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?
如何处理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)
我所知道的唯一解决方案是永远不要让异常"逃避"未处理.对此还有其他更全面彻底的解决方案吗?
压缩,jQuery大小约为70KB(未压缩:> 200KB).我没有看到像jQuery UI那样排除很少使用的部分的方法.如何减少jQuery的(压缩和缩小的)文件大小?我很担心,因为拨号线路和慢速机器/浏览器在我的网站用户中很常见.
我主要关注的是解析浏览器中JavaScript的持续时间.在较旧的机器上,这需要数百毫秒.网络传输是一次性成本,这使得它更容易忍受.
我有这样的代码:
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)
请告诉我,是否可以编写这样的方法?
我可以从中学到哪本书? …
我在使用TPL的代码中进行了以下设置:
实际的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) 假设分布式事务中涉及的所有数据库都使用两阶段提交信号实现,它们已准备好提交并具有必要的锁定.协调器发出提交信号,所有数据库都执行它们的部分事务,但是一个SQL数据库由于编程监督而未能考虑这种可能性而遇到零除错误.由于协调员已经发信号通知每个人因为除零而发生的事情是什么?
database transactions 2phase-commit distributed-transactions
我对线程有点新,我试图理解它在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) 我正在使用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]条目.他们的目标没有显示出来.
当我运行这个:
using(SqlConnection connection = new SqlConnection(connectionString)){
await connection.OpenAsync();
}
Run Code Online (Sandbox Code Playgroud)
它挂connection.OpenAsync()在线上.
如果我在Sql Server Management Studio中查看数据库有多少个活动连接,那么只有一个:可能是此代码使用的连接.所以,我不确定我是否正在从应用程序池中耗尽连接.
我究竟做错了什么?
我已经构建了一个小的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 ×3
c# ×2
ado.net ×1
asp.net ×1
c++ ×1
com ×1
culture ×1
cultureinfo ×1
database ×1
encoding ×1
excel ×1
exception ×1
html ×1
interop ×1
javascript ×1
jquery ×1
jquery-ui ×1
linq ×1
linq-to-sql ×1
localization ×1
mutex ×1
sql ×1
sql-server ×1
task ×1
transactions ×1