小编Kev*_*ogg的帖子

使用具有WHERE条件的单个查询(SQL Express 2005)从多个表中删除行

这是我正在使用的查询:

 DELETE TB1.*, TB2.*
   FROM TB1
        INNER JOIN TB2 ON TB1.PersonID = TB2.PersonID 
  WHERE (TB1.PersonID)='2'
Run Code Online (Sandbox Code Playgroud)

它在MS Access中工作正常但在SQL Server Express 2005中收到错误(','.附近的语法不正确).

怎么解决?请帮忙.

sql sql-server sql-server-2005-express sql-server-express

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

模拟存储库模式的最佳实践

我开始使用IoC/Mocking,我希望确保我的存储库使用"最佳实践".

我正在为我的存储库设置接口.具体实现将指向SQL,而测试将使用Moq生成"假货".我注意到,我使用起订量的回调功能一个不少.在这篇文章中,作者说.

由于Moq为您希望做的大多数事情提供了这两个领域的功能,因此您需要这些工具并没有太多不同的点.事实上,如果你认为你需要使用"回调",你可能会看起来有点难以看到Moq是否可以自动执行你想做的事情.

我已经看过了,看不到任何其他方式来实现我需要的东西 - 即'假的'存储库.有人可以告诉我这里有什么东西吗?有没有办法在没有回调的情况下实现这一目标?

public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
        // Arrange
        var mock = ContactRepositoryFake();

        // Act
        mock.Object.AddContact(new Contact() { Name = "bill" });
        mock.Object.AddContact(new Contact() { Name = "jane" });

        // Assert
        Assert.IsTrue(mock.Object.AllContacts.Count() == 2);
    }

    public Mock<IContactRepository> ContactRepositoryFake()
    {
        var _allContacts = new List<Contact>();
        var mock = new Mock<IContactRepository>();
        mock.Setup(x=>x.AddContact(It.IsAny<Contact>()))
            .Callback((Contact c) =>
                {
                    _allContacts.Add(c);
                });
        mock.Setup(x => x.AllContacts).Returns(_allContacts);
        return mock;

    }
}

public interface IContactRepository
{
    void …
Run Code Online (Sandbox Code Playgroud)

moq

10
推荐指数
1
解决办法
7358
查看次数

AutoMapper如何从ObjectId映射嵌套对象

我正在尝试将ReferralContract.AssessmentId属性映射到Referral.Assessment.Id以下代码有效,但我确信有更清洁的方法....请告诉我这是如此;-)

// Destination classes
public class Referral
{
    public Referral()
    {
        Assessment = new Assessment();
    }

    public int Id { get; set; }
    public Assessment Assessment { get; set; }
}

public class Assessment
{
    public int Id { get; set; }
}

// Source Class
public class ReferralContract
{
    public int Id { get; set; }
    public int AssessmentId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的Automapper映射是

Mapper.CreateMap<ReferralContract, Referral>()
      .ForMember(x => x.Assessment,
          opt => opt.MapFrom(scr => new Assessment { Id = …
Run Code Online (Sandbox Code Playgroud)

automapper

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

如何对生成的SQL脚本的输出进行排序?

我正在比较两个SQL服务器数据库(分别是开发和实时环境,SQL2005和SQL2008)来检查两者之间的差异.如果我为每个数据库生成一个脚本,我可以使用简单的文本比较来突出显示差异.

问题是脚本需要以相同的顺序来简化比较并避免存储过程的顺序不同的简单差异,但它们的内容是相同的.

所以如果我从开发中生成这个:

1: CREATE TABLE dbo.Table1 (ID INT NOT NULL, Name VARCHAR(100) NULL)
2: CREATE TABLE dbo.Table2 (ID INT NOT NULL, Name VARCHAR(100) NULL)
3: CREATE TABLE dbo.Table3 (ID INT NOT NULL, Name VARCHAR(100) NULL)
Run Code Online (Sandbox Code Playgroud)

这来自现场:

1: CREATE TABLE dbo.Table1 (ID INT NOT NULL, Name VARCHAR(100) NULL)
2: CREATE TABLE dbo.Table3 (ID INT NOT NULL, Name VARCHAR(100) NULL)
3: CREATE TABLE dbo.Table2 (ID INT NOT NULL, Name VARCHAR(100) NULL)
Run Code Online (Sandbox Code Playgroud)

比较两个突出显示第2行和第3行是不同的,但它们实际上是相同的,只是生成脚本向导在实时环境中的表2之前执行了table3.添加100个表,存储过程,视图等,这很快变得一团糟.

我目前的选择是:

  1. 在比较之前手动对内容进行排序
  2. 创建一个程序以按特定顺序创建脚本
  3. 查找对生成的脚本进行排序的免费软件应用程序
  4. 支付产品作为其工具套件的一部分
  5. (其他一些方法)

希望我只是错过了"按名称排序脚本"的复选框,但我看不到任何可以做到这一点的内容.我觉得我不应该为"排序输出"选项或许多其他不需要的工具这样简单的事情付费,所以选项4应该是最后的选择.

编辑 我可以完全访问这两种环境,但实时环境被锁定并托管在虚拟服务器上,远程桌面是实时访问的典型方式.我的偏好是将我可以复制到开发中并进行比较.我可以为数据库中的每种类型的对象生成脚本作为单独的文件(表,SP,函数等)

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

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

Kendo UI网格过滤器无法在引导程序Modal中运行

我在Kendo UI网格上遇到了这个奇怪的问题.我有一个可过滤的网格,但它在模态内.但问题是当我过滤一个列(文本列)时,我无法在过滤器文本框中键入.这很奇怪,因为在所有浏览器中它都不起作用.这是我的例子repro

Jsfiddle演示在这里

<div class="container">
    <h3>Modal Example</h3>
    <div>
        <a href="#myModal1" role="button" class="btn" data-toggle="modal">Launch Modal</a>
    </div>

    <!-- Modal -->
    <div id="myModal1" class="modal hide" tabindex="-1" role="dialog">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
            <h3>Kendo Not working on Modal</h3>
        </div>
        <div class="modal-body">
            <div id="grid" style="height:300px;"></div>
        </div>
        <div class="modal-footer">
            <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
            <button class="btn btn-primary">Save changes</button>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)
var sharedDataSource = new kendo.data.DataSource({
    data: [
        { id: 1, value: 10, item: "Item1" },
        { id: 2, value: 12, item: "Item2" },
        { …
Run Code Online (Sandbox Code Playgroud)

kendo-ui kendo-grid kendo-asp.net-mvc

6
推荐指数
2
解决办法
3761
查看次数

使用AutoMapper从列表向下映射到对象

我是AutoMapper的新手,我正试图解决一个问题.

如果我有这样的源类:

public class Membership
{
    public int MembershipId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string OrganizationName { get; set; }
    public List<Address> Addresses { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Address类看起来像这样:

public class Address
{
    public int AddressId{ get; set; }
    public int RefAddressTypeId { get; set; }
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string City { get; set; …
Run Code Online (Sandbox Code Playgroud)

automapper

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

使用共享相同事件处理程序的 FileSystemWatchers 安全吗?

使用共享相同事件处理程序的 FileSystemWatchers 安全吗?

让多个 FileSystemWatcher 使用相同的事件处理程序监视不同的目录是否安全?

Class Snippets
    Private _watchPaths As New List(Of String) From {"x:\Dir1", "x:\Dir2"}
    Private _watchers As List(Of FileSystemWatcher)
    Private _newFiles As New BlockingCollection(Of String)

    Sub Watch()
        Dim _watchPaths As New List(Of String) From {"x:\Dir1", "x:\Dir2"}
        Dim watchers As List(Of FileSystemWatcher)

        For Each path In _watchPaths
            Dim watcher As New FileSystemWatcher
            AddHandler watcher.Created, Sub(s, e)
            _trace.DebugFormat("New file {0}", e.FullPath)
            'Do a little more stuff
            _newFiles.Add(e.FullPath)
            End Sub
        Next
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

或者我们必须将 FileSystemWatcher 包装在如下所示的类中以使事件处理程序线程安全?

Class FileWatcher …
Run Code Online (Sandbox Code Playgroud)

.net filesystemwatcher thread-safety

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

右边连接一个where子句

我在代码中找到了这样的查询:

 SELECT *
   FROM a
        RIGHT JOIN b ON a.id = b.id
  WHERE a.id = b.id
Run Code Online (Sandbox Code Playgroud)

它与a.id = b.id上的内连接基本相同吗?

sql join

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

SQL Server - 如何只在select之间的其他属性时加入

我正在尝试查询以显示学生的出勤记录.这些是我的表.

在此输入图像描述

这是我到目前为止开始的......

我正在将studentId(StudentCalendar)列表与学校开放日期(DateCollection)匹配,然后记录错过的天数(出勤率).

我最终得到这样的东西..

 SELECT s.personid,
        dc.calendarid, 
        dc.[date], 
        coalesce(absentMinutes,0) AS absentMinutes
   FROM [dbo].[StudentCalendar] s
        INNER JOIN [dbo].[DateCollection] dc ON s.calendarId = dc.calendarId
         LEFT JOIN [dbo].[Attendance] a ON a.dateOccurred = dc.[date]
               AND a.personId = s.personId
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我现在有一份学生名单,每天都有学校开放.我的问题是并非每个学生都注册了整个学年.

有没有办法让我只能将学生列表(StudentCalendar)与学校开放日期(DateCollection)匹配,当它在每个学生的学生日历startDate和endDate(日历)中给出的范围内?

像这样的东西..

在此输入图像描述

sql sql-server

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

一个方法的执行时间正在增加为什么会如此?

我有一个方法,我做以下事情

  1. 我将值添加到类对象
  2. 使用Entity FrameWork检查数据库中的差异

然而,尽管参数没有变化(只有值改变),方法的执行时间也在不断增加.

以下是我的方法的内容:

sw.Start();

details.EffectiveDate = cb.Attribute("dte_effective").Value.GetDate();
details.EndDate = cb.Attribute("dte_end").Value.GetDate();
details.MaxRefills = cb.Attribute("qty_refill").Value.ToIntOrNull();
details.Sex = cb.Attribute("cde_sex").Value == "B" || string.IsNullOrWhiteSpace(cb.Attribute("cde_sex").Value) ? (string)null : cb.Attribute("cde_sex").Value.Substring(0, 1);
details.RxLimit = cb.Attribute("cde_rx_limit").Value.ToBoolOrNull();
details.WEAC = fullDoc.Descendants("weacPrice").Select(d => (decimal?)decimal.Parse(d.Attribute("amt_npt_price").Value)).FirstOrDefault();
details.EAC = fullDoc.Descendants("eacPrice").Select(d => (decimal?)decimal.Parse(d.Attribute("amt_npt_price").Value)).FirstOrDefault();
details.FederalMAC = fullDoc.Descendants("fulPrice").Select(d => (decimal?)decimal.Parse(d.Attribute("amt_mac").Value)).FirstOrDefault();
details.StateMAC = fullDoc.Descendants("macPrice").Select(d => (decimal?)decimal.Parse(d.Attribute("amt_mac").Value)).FirstOrDefault();
//there are few more

var currRestrictions = db.NDCDiagRestrictions.Where(n => n.NDC == NDC).ToList();

var newRestrictions = fullDoc.Descendants("diagRestriction")
                             .Select(d => new NDCDiagRestriction()
                             {
                                 NDC = NDC,
                                 DiagFrom = long.Parse(d.Attribute("cde_diag_from").Value),
                                 DiagTo = …
Run Code Online (Sandbox Code Playgroud)

.net c# performance visual-studio-2013

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

如何使用powershell获取每个文件的文件名和行数

我有以下powershell脚本来计算给定目录中每个文件的行数:

dir -Include *.csv -Recurse | foreach{get-content $_ | measure-object -line}
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

Lines    Words    Characters    Property
-----    -----    ----------    --------
   27
   90
   11
   95
  449
  ...
Run Code Online (Sandbox Code Playgroud)

每个文件的计数很好(我不需要单词,字符或属性),但我不知道计数的文件名是什么.

理想的输出是这样的:

Filename        Lines
--------        -----
Filename1.txt      27
Filename1.txt      90
Filename1.txt      11
Filename1.txt      95
Filename1.txt     449
  ...
Run Code Online (Sandbox Code Playgroud)

如何将文件名添加到输出中?

powershell

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

T-SQL基于条件强制为null值

这是我的观点

 SELECT e.Text AS StatusText,
        a.Created AS [DATE],
        a.Username,
        b.Name AS CustomerName,
        c.Name AS ServiceName,
        d.Message AS DeviationMessage
   FROM dbo.StatusUpdate AS a
        LEFT OUTER JOIN dbo.Customer AS b ON a.CustomerId = b.CustomerID
        LEFT OUTER JOIN dbo.Service AS c ON a.ServiceId = c.ServiceID
        LEFT OUTER JOIN dbo.Deviation AS d ON a.DeviationId = d.DeviationID
        LEFT OUTER JOIN dbo.StatusText AS e ON a.Status = e.ID
Run Code Online (Sandbox Code Playgroud)

我想要做的是:当a.Status(int)是2或3时,我想强制a.Username显示为NULL.我该怎么办呢?

sql t-sql sql-view

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