小编Mik*_*ike的帖子

在属性签名中C#中的=>赋值是什么

我遇到了一些代码

public int MaxHealth => 
         Memory[Address].IsValid ? 
         Memory[Address].Read<int>(Offs.Life.MaxHp) : 
         0;
Run Code Online (Sandbox Code Playgroud)

现在我对Lambda表达式有点熟悉了.我只是没有看到它以这种方式使用它.

上述陈述与之间的区别是什么?

public int MaxHealth  = x ? y:z;
Run Code Online (Sandbox Code Playgroud)

c# c#-6.0

213
推荐指数
5
解决办法
11万
查看次数

TransactionScope和Transactions

在我的C#代码中,我使用TransactionScope,因为我被告知不要依赖我的sql程序员将始终使用事务,我们负责和yada yada.

话说回来

它看起来像TransactionScope对象在SqlTransaction之前回滚?这是可能的,如果是这样,在事务中包装TransactionScope的正确方法是什么.

这是sql测试

CREATE PROC ThrowError
AS

BEGIN TRANSACTION --SqlTransaction
SELECT 1/0

IF @@ERROR<> 0
BEGIN
  ROLLBACK TRANSACTION --SqlTransaction
  RETURN -1 
END
ELSE
BEGIN
  COMMIT TRANSACTION --SqlTransaction
  RETURN 0
END

go

DECLARE @RESULT INT

EXEC @RESULT = ThrowError

SELECT @RESULT
Run Code Online (Sandbox Code Playgroud)

如果我运行这个,我得到除以0并返回-1

从C#代码调用我得到一个额外的错误消息

遇到零除错误.
EXECUTE之后的事务计数表示缺少COMMIT或ROLLBACK TRANSACTION tatement.先前的计数= 1,当前计数= 0.

如果我给sql事务一个名字然后

无法回滚SqlTransaction.未找到该名称的任何事务或保存点.EXECUTE之后的事务计数表示缺少COMMIT或ROLLBACK TRANSACTION语句.先前的计数= 1,当前计数= 2.

有时似乎计数上升,直到应用程序完全退出

c#就是这样

        using (TransactionScope scope = new TransactionScope())
        {
             ... Execute Sql 

             scope.Commit()
         }
Run Code Online (Sandbox Code Playgroud)

编辑:

sql代码必须适用于2000和2005

c# sql transactions

17
推荐指数
2
解决办法
2万
查看次数

单身模式在vb

我通常是ac #programmer,但我正在VB中为这个项目工作,当我用来设置单例类时我会遵循Jon Skeet模型

public sealed class Singleton
{
    static Singleton instance = null;
    static readonly object padlock = new object();

    Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            lock (padlock)
            {
                if (instance == null)
                {
                    instance = new Singleton();
                }
                return instance;
            }
        }
    }

    //Added to illustrate the point
    public static void a()
    {
    }

    public void b()
    {
    }

} 
Run Code Online (Sandbox Code Playgroud)

如果我在c#中编写语句,或者其中一个变体

Singleton.Instance 什么程序是所有非静态的成员,b而不是a.

现在我在VB中做同样的事情

Private Shared _instance As StackTracker
Private Shared ReadOnly _lock As Object …
Run Code Online (Sandbox Code Playgroud)

vb.net singleton

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

SQL更新工作不插入

好的,我会尽力描述这个.我有一个SP,它传递XML并更新并插入另一个表.这在昨天工作.我今天改变的是使用OPENXML vs xml.nodes加载临时表.我甚至改回来了,我仍然得到这个有趣的问题.我有一个更新并插入同一个事务中.更新工作,然后插入挂起,没有错误没有任何...进行9分钟.通常需要10秒钟.没有阻止程序根据master.sys.sysprocesses.有趣的是,Select的Insert不返回任何行,因为它们已经存在于数据库中.更新更新72438 in

SQL Server Execution Times:
   CPU time = 1359 ms,  elapsed time = 7955 ms.

ROWS AFFECTED(72438)
Run Code Online (Sandbox Code Playgroud)

我不知道可能导致我的问题的原因是什么?权限我不这么认为?空间我不这么认为,因为会返回错误?

查询:

UPDATE [Sales].[dbo].[WeeklySummary]
SET [CountryId] = I.CountryId
    ,[CurrencyId] = I.CurrencyId
    ,[WeeklySummaryType] = @WeeklySummaryTypeId       
    ,[WeeklyBalanceAmt] = M.WeeklyBalanceAmt + I.WeeklyBalanceAmt
    ,[CurrencyFactor] = I.CurrencyFactor
    ,[Comment] = I.Comment
    ,[UserStamp] = I.UserStamp
    ,[DateTimeStamp] = I.DateTimeStamp
FROM 
    [Sales].[dbo].[WeeklySummary] M
INNER JOIN
    @WeeklySummaryInserts I
    ON M.EntityId = I.EntityId
    AND M.EntityType = I.EntityType
    AND M.WeekEndingDate = I.WeekEndingDate
    AND M.BalanceId = I.BalanceId
    AND M.ItemType = I.ItemType …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2005

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

为什么要执行表扫描?

SELECT X.ID, X.Field4
FROM 
        #TaxInvoiceData T
INNER JOIN
        xxx X
        ON  T.Id = X.Id
        AND Field2 = @VAR     
        AND Field3 = 'S'
Run Code Online (Sandbox Code Playgroud)

当我在表X上运行查询全表扫描时.我不明白为什么因为表X的主键是

ID INT ASC
Field3 CHAR(2) ASC
Field2 DATETIME ASC  Unique Non-clustered
Run Code Online (Sandbox Code Playgroud)

还有一个索引

Field2 DATETIME ASC  Non-Unique Non-clustered
Run Code Online (Sandbox Code Playgroud)

做得好

SELECT ID
FROM xxx
WHERE 
    Field2 = @VAR   
AND Field3 = 'S'
Run Code Online (Sandbox Code Playgroud)

索引寻求

提前致谢.

sql sql-server indexing

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

sql中的=*运算符

当我输入时,我正在打字和胖手指的东西

=*
Run Code Online (Sandbox Code Playgroud)

在sql窗口(2008 SSMS连接到2005服务器)中,它变为蓝色作为关键字.

我无法弄清楚,或谷歌,这是做什么的.我知道*=但不是=*

这个运营商做什么?

sql-server sql-server-2005 sql-server-2008

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

书签的Visual Studio快捷键

我正在尝试练习键盘快捷键,以成为一名更有效率的程序员。我遇到了一个快捷方式,表示切换书签是Ctrl+ KK。但是在我的环境中,快捷键是Ctrl+ BCtrl+ T

我正在尝试找出造成这种差异的原因是什么?
我正在使用C#Web项目中的ReSharper 9.2运行Visual Studio Enterprise 2015,
我怀疑该网站是错误的,因为其他网站也说同样的话。

资料来源:http : //visualstudioshortcuts.com/2015/

c# resharper keyboard-shortcuts visual-studio-2015

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

Sitecore - 需要登录

所以对于我的Sitecore网站,我试图让它用户登录,不能使用extranet\Annoymous帐户.我已阅读并尝试过

在网站上实施Sitecore Extranet登录

但我错过了一些东西,asp表单身份验证有副问题,它会将您返回到原始页面,从而忽略用户的桌面或页面编辑器选项.

我感到沮丧的部分是,这个逻辑似乎已经内置在SiteCore中.例如,如果我尝试访问http:// site/sitecore/shell并且我没有登录站点核心将我重定向到登录页面.那么我怎样才能为我的整个网站启用此功能.

UPDATE

我的安全编辑器看起来像这样 在此输入图像描述 在此输入图像描述

即使我取消保护sitecore对象并拒绝访问主对象,我仍然可以访问该站点. 在此输入图像描述

在web.config中,我的"站点"部分如下所示

<sites>
  <site name="shell" virtualFolder="/sitecore/shell" physicalFolder="/sitecore/shell" rootPath="/sitecore/content" startItem="/home" language="en" database="core" domain="sitecore" loginPage="/sitecore/login" content="master" contentStartItem="/Base" enableWorkflow="true" enableAnalytics="false" analyticsDefinitions="content" xmlControlPage="/sitecore/shell/default.aspx" browserTitle="International" htmlCacheSize="2MB" registryCacheSize="3MB" viewStateCacheSize="200KB" xslCacheSize="5MB" disableBrowserCaching="true" />
  <site name="login" virtualFolder="/sitecore/login" physicalFolder="/sitecore/login" enableAnalytics="false" database="core" domain="sitecore" disableXmlControls="true" />
  <site name="admin" virtualFolder="/sitecore/admin" physicalFolder="/sitecore/admin" enableAnalytics="false" enableWorkflow="true" domain="sitecore" loginPage="/sitecore/admin/login.aspx" />
  <site name="service" virtualFolder="/sitecore/service" physicalFolder="/sitecore/service" />
  <site name="modules_shell" virtualFolder="/sitecore modules/shell" physicalFolder="/sitecore modules/shell" rootPath="/sitecore/content" startItem="/home" language="en" database="core" domain="sitecore" content="master" enableAnalytics="false" enableWorkflow="true" />
  <site name="modules_website" virtualFolder="/sitecore modules/web" physicalFolder="/sitecore modules/web" …
Run Code Online (Sandbox Code Playgroud)

asp.net sitecore

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

PowerShell - 在JObject中访问JArray

我有一个Json对象

 {
  "ProjectDirectory": "C:\\Main",
  "SiteName": "RemoteOrder",
  "ParentPath": "/Areas//Views",
  "VirtualDirectories": [
        {
          "Name": "Alerts",
          "Path": "\\Areas\\RemoteOrder\\Views\\Alerts"
        },
        {
          "Name": "Analytics",
          "Path": "\\Areas\\RemoteOrder\\Views\\Analytics"
        },
        {
          "Name": "Auth",
          "Path": "\\Areas\\RemoteOrder\\Views\\Auth"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我创造的

$config = [Newtonsoft.Json.Linq.JObject]::Parse($file)
Run Code Online (Sandbox Code Playgroud)

我可以访问类似的东西

$config["ProjectDirectory"]
$config["VirtualDirectories"]
Run Code Online (Sandbox Code Playgroud)

但是我无法访问VirtualDirectories JArray中的元素

我确认过了

 $config["VirtualDirectories"][0].GetType() // JObject
 $config["VirtualDirectories"].GetType() // JArray
 $config // JObject
Run Code Online (Sandbox Code Playgroud)

我试过了

$config["VirtualDirectories"][0]["Name"]
$config["VirtualDirectories"][0]["Path"]
$config["VirtualDirectories"][0][0]
$config["VirtualDirectories"][0].GetValue("Name")
Run Code Online (Sandbox Code Playgroud)

当我尝试

 $config["VirtualDirectories"][0].ToString()
Run Code Online (Sandbox Code Playgroud)

我明白了

{
      "Name": "Alerts",
      "Path": "\\Areas\\RemoteOrder\\Views\\Alerts"
}
Run Code Online (Sandbox Code Playgroud)

我真正想做的是访问它一个循环,但我似乎无法访问JObject元素

powershell json json.net

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

笛卡尔连接两个没有记录的表

我必须将表A(税务相关)加入表B(客户相关)

我最多拉1条记录但有时没有记录.

现在我需要将组合记录返回给用户

我虽然做一个简单的笛卡尔积可以有效

SELECT * FROM TableA, TableB
Run Code Online (Sandbox Code Playgroud)

但如果TableA或TableB为空,则不起作用

我会做一个完整的外部联接,但现在没有任何东西可以加入.我可以创建带有标识列的临时表,然后加入它们(因为1 = 1)

但我正在寻找一种不同的方式?

谢谢

sql sql-server

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