我有一个简单的脚本更新并显示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".
出于报告目的,我想将采购订单列表分成多个列表.每个购买地址一个列表.我知道可以按购买地址对列表进行分组,但我的问题是如何将此购买地址的列表拆分为多个列表,并使用这些多个列表创建单独的报告文件.
码:
(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的多个列表?
我正在编写一个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) 我是 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) 使用CSS创建水平导航我想在元素之间使用分隔符.
使用:
li:before
{
content: " | ";
}
Run Code Online (Sandbox Code Playgroud)
我得到一个分隔线.但我想在文本和分隔符之间使用边距
item(margin-right)|(?)item(margin-right)
如何设置上述问号的保证金?左边距(或填充左边),边距将存在于分隔符的前面,而不是分隔符和内容之间.
我正在使用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) 我试图从多个数据库表中删除记录.对于错误处理,我正在使用下面看到的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)
问题是当引发异常时,事务不会回滚.在阅读多个论坛时,我的结论是"使用"语句应该处理事务和连接.处置时,应回滚未提交的事务.
有人能告诉我我做错了什么.