小编sll*_*sll的帖子

SQL更改值

我正在尝试进行选择查询,我正在尝试更改值.

select * from config where category = 'basic'
Run Code Online (Sandbox Code Playgroud)

例如,我希望输出显示'general'而不是'basic'.但我不想将所有'基本'价值更新为'一般'

有没有办法做到这一点?

sql select

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

Hashtable- Rehashing

有人告诉我,Hashtable.NET使用中重复以减少/避免碰撞.

IE浏览器."Rehasing的工作原理如下:假设我们有一组散列不同的函数,H1 ... Hn,并且当从散列表中插入或检索项目时,最初使用H1散列函数.如果这导致碰撞,则尝试使用H2,然后再尝试Hn,以避免在Hashtable中发生碰撞."

假设:我们有一个哈希表,其中n(其中n <Infinity)元素的渐近时间复杂度为o(1); 我们(CLR)在应用一些散列函数(Hn-1散列函数,其中n> 1)时实现了这一点.

问题:当我们寻找(检索)任何元素时(如果使用了不同的散列函数),有人可以解释一下CLR map如何键入哈希码?CLR如何跟踪(如果是)任何活动对象(哈希表)的哈希函数?

提前致谢

c# hashtable universal-hashing

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

WinRT - TCP客户端?

我正在(.NET 4.5为Windows 8 Metro应用程序的新WinRT 框架中构建一个IRC客户端.

但是,我有一些问题.我已经发现我需要使用a StreamSocket来读取TCP数据,但我可能做错了.

我相信这是因为我没有收到任何数据.

下面你看我的代码.我无法在网上找到任何有关此问题的代码示例.

class IRCClient
{
    private StreamSocket tcpClient;
    public string Server = "holmes.freenode.net";
    public int Port = 6665;

    public IRCClient()
    {
        tcpClient = new StreamSocket();
    }

    public async void Connect()
    {
        await tcpClient.ConnectAsync(
                         new Windows.Networking.HostName(Server), 
                         Port.ToString(), 
                         SocketProtectionLevel.PlainSocket);

        DataReader reader = new DataReader(tcpClient.InputStream);
        string data = reader.ReadString(reader.UnconsumedBufferLength);

        MessageDialog dialog = new MessageDialog(data);            
    }
}
Run Code Online (Sandbox Code Playgroud)

该代码后面的数据始终为空字符串.此外,UnconsumedBufferLength始终返回0.

怎么会?

.net c# windows-runtime .net-4.5

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

添加词典条目时出现异常

我们看到在IIS 7服务器上运行的ASP.NET上下文中的以下代码块中发生此异常.

1) Exception Information
*********************************************  
Exception Type: System.Exception  
Message: Exception Caught in Application_Error event
Error in: InitializationStatus.aspx  
Error Message:An item with the same key has already been added.  
Stack Trace:    at
System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)   
at CredentialsSession.GetXmlSerializer(Type serializerType)
Run Code Online (Sandbox Code Playgroud)

这是发生异常的代码:

[Serializable()]
public class CredentialsSession
{
    private static Dictionary<string, System.Xml.Serialization.XmlSerializer> localSerializers = new Dictionary<string, XmlSerializer>();

    private System.Xml.Serialization.XmlSerializer GetXmlSerializer(Type serializerType)
    {
        string sessionObjectName = serializerType.ToString() + ".Serializer";

        if (Monitor.TryEnter(this))
        {
            try
            {
                if (!localSerializers.ContainsKey(sessionObjectName))
                {
                    localSerializers.Add(sessionObjectName, CreateSerializer(serializerType));
                }
            }
            finally …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading dictionary .net-4.0

8
推荐指数
2
解决办法
2449
查看次数

在foreach循环中跳过特定类型的项

我有这个代码从excel文件填充数据表:

for (int rowIndex = cells.FirstRowIndex; rowIndex <= cells.LastRowIndex; rowIndex++)
{
    var values = new List<string>();
    foreach (var cell in cells.GetRow(rowIndex))
    {
        values.Add(cell.Value.StringValue);
    }
    dataTable.LoadDataRow(values.ToArray(), true);
}
Run Code Online (Sandbox Code Playgroud)

当cell与我在表中设置的数据类型不同时,我有问题.

如何跳过错误数据类型的单元格?

我也知道这一点,但我不能在我的情况下使它工作:

foreach //...
{
    if //if datatype is not right
    {
        continue;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# foreach loops

8
推荐指数
2
解决办法
3316
查看次数

使用WCF PollingDuplex和Silverlight客户端时出现MaxSessionsPerAddress问题

WCF跟踪日志显示许多"The server has hit a PollingDuplex throttle, MaxSessionsPerAddress, and cannot accept another session from this client. An http error was returned"错误.

找不到有关MaxSessionsPerAddress设置的足够详细信息,只是发现这篇帖子MaxSessionsPerAddress总是说是10不能改变的.

只是在想可能是这个问题涉及到我的客户端代理,在这样的问题,一些超时结果实现它们共同容错逻辑:在通道故障WCF客户端代理的情况下关闭一个通道(关闭(),然后Aboort()在尝试/捕获),然后尝试重新连接每5秒,N次重试.也许客户端甚至在10次重试之后仍然无法连接在服务上创建了10个会话,因此所有下一次重试都被拒绝了?

一般信息:

  • PollingDuplex连接
  • 无法重现此问题,因为它在实时环境中观察过一次,然后关闭以不影响用户
  • IIS HTTPERR日志具有多个Connection_Abandoned,Connection_Dropped条目,用于失败的服务

WCF客户端:

  • Silverlight4
  • ClientPollTimeout = 5分钟
  • InactivityTimeout = 24h,SendTimeout = 30min,CloseTimeout = 3min
  • ReceiveTimeout = 24h,OpenTimeout = 3min

WCF服务器:

  • IIS托管
  • InstanceContextMode = PerSession
  • ConcurrencyMode = Multiple
  • maxConcurrentCalls,maxConcurrentSessions,maxConcurrentInstances设置为500
  • HttpBinding,httpTransport,PollingDuplexBindingElement,DuplexChannelFactory
  • sendTimeout ="00:30:00",receiveTimeout ="24:00:00",openTimeout ="00:10:00",closeTimeout ="00:10:00"
  • maxOutputDelay ="00:00:01",inactivityTimeout ="24:00:00",serverPollTimeout ="00:02:00"
  • maxReceivedMessageSize ="1073741824",maxBufferSize ="1073741824",MaxBufferPoolSize ="2147483647"

任何帮助非常感谢!

c# silverlight wcf .net-4.0 polling

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

MSBild错误MSB3086,与TeamCity

我正在尝试.NET 4使用MSBuildWeb Deploy 构建和部署项目,并且TeamCity我在本地开发机器上运行TeamCity实例时工作正常(最终),但是当我尝试使用相同设置设置新的TeamCity实例时得到以下错误:

\Microsoft.Common.targets(2249, 9): error MSB3086: Task could not find "sgen.exe" 
using the SdkToolsPath 
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\" or the 
registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A".
Make sure the SdkToolsPath is set and the tool exists in the correct processor 
specific location under the SdkToolsPath and that the Microsoft Windows SDK 
is installed 
Run Code Online (Sandbox Code Playgroud)

我正在运行Windows Server 2008,并安装了.NET 4,包括(我相信)MSBuild 4.我也安装了Windows SDK 7.1,因为其他线程建议这可能是问题,但仍然没有运气.任何想法或建议将不胜感激.

谢谢

.net msbuild teamcity windows-server-2008 microsoft-web-deploy

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

什么时候关闭属性评估?

我们的代码库中的几个方法使用'MaybeObject',可以在结果可能已知时传递给函数,或者可能依赖于尚未执行的外部Web服务调用.例如,下面的属性可以具有指定的已知值,或者如果未指定并在异步调用完成后调用它将返回异步调用的结果.

private string _internalString;
public string stringProp
{ 
    get
    {
        if (!string.IsNullOrEmpty(_internalString))
            return _internalString;
        return resultOfAsyncCallFromSomewhereElse;
    }

    set { _internalString = value; }
}
Run Code Online (Sandbox Code Playgroud)

显然,尝试在异步调用完成之前引用该属性会导致空引用异常,因此我们还有一个标志来检查该值是否可用.

问题是,在下面的代码中会创建lambda尝试和评估stringProp(可能还没有填充),或者是否会推迟评估直到调用结果Action(在检查异步操作完成后)?

public Action ExampleMethod(MaybeObject maybe)
{
    return () => doSomethingWithString(maybe.stringProp);
}
Run Code Online (Sandbox Code Playgroud)

c# lambda closures

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

重构方法的最佳实践

我想知道重构代码的最佳实践是什么样的:

应该在哪里设置退出标准,以及最佳做法是什么

    private static bool Foo()
    {
        bool result = false;

        if (DoMehod1())
        {
            if (DoMehod2())
            {
                if (DoMethod3())
                {
                    result = true;
                }
                else
                {
                    Console.WriteLine("DoMethod3 Failed");
                }
            }
            else
            {
                Console.WriteLine("DoMethod2 Failed");
            }
        }
        else
        {
            Console.WriteLine("DoMethod1 Failed");
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

.net c# refactoring

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

如何使用PLINQ在C#中实现MapReduce?

如何使用PLINQ在C#中实现MapReduce?

假设您有7-8个WebServices来收集数据,并且每次接收(异步方式)您必须将这些数据放入数据库的某些表中,在我的例子中它是SQL Server 2008.例如,您从每个数据库获取的数据Web服务是:

 <employees>
  <employee>
   <name>Ramiz</name>
  </employee>
  <employee>
   <name>Aamir</name>
  </employee>
  <employee>
   <name>Zubair</name>
  </employee>
</employees>
Run Code Online (Sandbox Code Playgroud)

并且,在每次收到响应时,这些数据都会进入表名 - 员工:

Employee
===
EmployeeID (PK)
EmployeeName
Run Code Online (Sandbox Code Playgroud)

一旦数据进入表格,它必须返回json到客户端,即ASP.NET(MVC 3)应用程序使用客户端JavaScript(ajax)进行此调用.

假设,WebServiceEmployee1已返回数据,其他6个正在队列中(仍在尝试获取数据).然后,它应该将结果集注册到表而不是等待其他6并将插入的员工的数据返回到json中的客户端.而且,保持联系并做其他人同样的方式.

请参阅我的工具箱,我有ASP.NET MVC 3(Razor),SQL SERVER 2008 R2,jQuery.

谢谢.

c# mapreduce plinq c#-4.0 asp.net-mvc-3

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