小编Luu*_*nen的帖子

不明白错误消息:必须声明标量变量"@Username".

我有一个简单的脚本更新并显示useraccount.(与管理工作室2010合作)为了防止用户错误,我想在SQL中使用变量(之前从未这样做过).

阅读教程时,它应该像下面的代码示例一样简单,除了我收到错误消息.在网上搜索具有相同错误的人,我最终看到了具有相同错误的非常复杂的代码.有人能给我一个线索吗?

DECLARE @Username nvarchar(256) 
Set @Username = 'theUsername'

UPDATE aspnet_Membership
SET IsLockedOut = 0
WHERE UserId IN (SELECT U.UserId
FROM aspnet_Users as U inner join aspnet_Membership M on U.UserId = M.UserId
WHERE u.UserName = @Username)
GO 
SELECT U.UserId, U.UserName, M.Password, M.IsLockedOut, U.LastActivityDate
FROM aspnet_Users as U inner join aspnet_Membership M on U.UserId = M.UserId
WHERE u.UserName = @Username
Run Code Online (Sandbox Code Playgroud)

消息137,级别15,状态2,行3必须声明标量变量"@Username".

sql

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

通过分组拆分Linq列表

出于报告目的,我想将采购订单列表分成多个列表.每个购买地址一个列表.我知道可以按购买地址对列表进行分组,但我的问题是如何将此购买地址的列表拆分为多个列表,并使用这些多个列表创建单独的报告文件.

码:

(from o in orders
group o by new {field1, field2, field3, field4} into og
orderby og.Key.field1
select new ViewClass
{
    purchaseAddress = og.Key.field1,
    product = og.key.field2,
    count = og.count
}).ToList()
Run Code Online (Sandbox Code Playgroud)

问题:如何将上面的列表拆分为每个purchaseAddress的多个列表?

c# linq

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

winforms应用程序中的多线程

我正在编写一个win表单,使用报表查看器创建多个PDF文件.这些PDF文件分为4个主要部分,每个部分负责创建特定报告.这些进程创建的文件最少为1个,最多为用户数(目前为50个).

该程序已经存在,依次使用4种方法.为了提高用户数量的额外性能,我想在4个独立的线程中将这些方法与邮件进程分开.

虽然我是使用C#进行多线程处理的新手,但我读了很多文章如何实现这一点.我唯一不确定的是我应该从哪个方向开始.当我阅读多篇博文时,我不确定是否要使用4个独立的线程,一个线程池或多个后台工作者.(或者并行编程应该是最好的方法吗?).博客文章告诉我,如果超过3个线程使用线程池,但另一方面告诉我如果使用winforms,请使用backgroundworker.哪个选项最好(以及为什么)?

最后,我的主线程必须等待所有进程结束才能继续.

有人能告诉我什么是我的问题的最佳解决方案.

*编辑后的额外信息*

我忘了告诉(在我读了你的评论和可能的解决方案之后).这些方法只共享一个"IEnumerable"用于阅读.在触发方法(不必按顺序运行)之后,这些方法会触发用于向UI发送状态更新的事件.我认为使用单独的线程即使不是不可能也很难触发事件,因此在运行时应该有某种回调函数来报告状态更新.

psuedo代码中的一些示例.

 main()
 {
       private List<customclass> lcc = importCustomClass()

       export.CreatePDFKind1.create(lcc.First(), exportfolderpath, arg1)

       export.CreatePDFKind2.create(lcc, exportfolderpath)

       export.CreatePDFKind3.create(lcc.First(), exportfolderpath) 

       export.CreatePDFKind4.create(customclass2, exportfolderpath)
 } 

 namespace export
 {
     class CreatePDFKind1         
     {
        create(customclass cc, string folderpath)
        {
            do something;
            reportstatus(listviewItem, status, message)
        }
     }

     class CreatePDFKind2
     {
        create(IEnumerable<customclass> lcc, string folderpath)
        {
            foreach (var x in lcc)
            {
               do something;
               reportstatus(listviewItem, status, message)
            }
        }
     }

     etc.......
  }
Run Code Online (Sandbox Code Playgroud)

c# multithreading winforms

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

使用结果集使用计算值更新所选的同一表

我是 sql(脚本)新手。单个 CRUD 命令没有问题,但我正在尝试创建一个存储过程,它将使用同一选定表的结果更新具有计算值的表。

表中包含每个员工的总休假时间值和去年剩余休假时间值。

我将努力实现的目标是将今年的新时间添加到剩余时间中。有一个问题。新的小时数列以整小时为单位,剩余时间是以“滴答”为单位的值,即一百纳秒。

如何使用同一个表作为此计算的参考来更新表?

example table:
employee, vacation, remainingvacation

new value of remainigvacation = vacation(in hours) * 60(minutes) * 60(seconds) * 10^9 (to convert to ticks) + remainingvacation (in ticks)
Run Code Online (Sandbox Code Playgroud)

sql stored-procedures

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

css:内容间距之前

使用CSS创建水平导航我想在元素之间使用分隔符.

使用:

li:before
{
  content: " | ";
}
Run Code Online (Sandbox Code Playgroud)

我得到一个分隔线.但我想在文本和分隔符之间使用边距

item(margin-right)|(?)item(margin-right)

如何设置上述问号的保证金?左边距(或填充左边),边距将存在于分隔符的前面,而不是分隔符和内容之间.

css

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

单元测试模拟框架是否会影响您编程的方式?

我正在使用Moq框架进行单元测试.

我有一个描述类的接口,如下所示:

public interface ISourceFileLocation : IFileLocation, IDisposable
{
    bool RemoveAfterTransfer { get; set; }
    void RemoveSource();
    //.....
}
Run Code Online (Sandbox Code Playgroud)

为了确保调用RemoveSource-Method,我实现了一个基类,其中在dispose方法中调用remove.

public abstract class SourceFileBase : ISourceFileLocation
{
    //......

    public bool RemoveAfterTransfer { get; set; }

    public void RemoveSource()
    {
        if (File.Exists(Uri.AbsolutePath))
        {
            File.Delete(Uri.AbsolutePath);
        }
    }

    public void Dispose()
    {
        if (this.RemoveAfterTransfer)
            this.RemoveSource();
    }
}
Run Code Online (Sandbox Code Playgroud)

模拟ISourceFileLocation时没有默认实现,因此对于测试我想在具体类应该继承的基类上实现测试.

在模拟基类时,我的测试期望RemoveSource-Method是虚拟的,这打破了我确保调用方法的想法!

这是缺乏框架,有更好的框架或方法来测试这个,或者这是我的代码的问题,我应该重新考虑我的设计?

亲切的问候.

测试方法:

    [TestCategory("Source")]
    [TestMethod]
    public void CheckIfRemoveSourceMethodIsCalled()
    {
            //ARRANGE
            var mockSourceLocation = new Mock<SourceFileBase>();
            mockSourceLocation.Object.RemoveAfterTransfer = true;
            mockSourceLocation.Setup(x => x.RemoveSource());
            //ACT
            mockSourceLocation.Object.Dispose();
            /ASSERT …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq

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

如何使用C#中的using语句进行错误处理

我试图从多个数据库表中删除记录.对于错误处理,我正在使用下面看到的try/catch块.

try
{
    using (SqlCeConnection oConn = new SqlCeConnection(ConnectionString))
    {
        oConn.Open();
        using (SqlCeTransaction transaction = oConn.BeginTransaction())
        {
            //delete from multiple tables using ADO.NET
            transaction.Commit();
        }
    }
}
catch
{
   //error handling
}
Run Code Online (Sandbox Code Playgroud)

问题是当引发异常时,事务不会回滚.在阅读多个论坛时,我的结论是"使用"语句应该处理事务和连接.处置时,应回滚未提交的事务.

有人能告诉我我做错了什么.

c# error-handling ado.net transactions using-statement

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