Articles of .net

回滚后返回ExecuteNonQuery的值

假设我们有一个存储过程,它确实像这样: BEGIN TRANSACTION UPDATE sometable SET aField = 0 WHERE anotherField = 1; UPDATE sometable SET aField = 1 WHERE anotherField = 2; ROLLBACK TRANSACTION; 从C#我们有这样的事情: using (var connection = new SqlConnection(“connection string”)) { connection.Open(); var cmd = connection.CreateCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = “my_procedure”; var res = cmd.ExecuteNonQuery(); } 为什么我没有得到res == -1? 我仍然得到受影响的行数。 当文档声明“如果发生回滚,返回值也为-1” […]

migratordotnet – 从应用程序内部运行迁移(无需或构建)

有没有办法从应用程序本身运行迁移? 谢谢!

如何设计Google Chrome标签等标签?

如何设计具有Google Chrome浏览器标签的用户界面,我的意思是每个标签必须能够: 最大化 关 拖着,独自站立。 我正在使用.net 2.0(C#) 谢谢,

与等待继续的ContinueWith(delegate,CancellationToken)的等效

我有这种情况: private Task LongRunningTask = /* Something */; private void DoSomethingMore(Task previousTask) { } public Task IndependentlyCancelableSuccessorTask(CancellationToken cancellationToken) { return LongRunningTask.ContinueWith(DoSomethingMore, cancellationToken); } 特别是,我在这里感兴趣的行为在MSDN的关于Continuation Tasks的页面中详细说明如下: 在这些情况下,延续进入“ Canceled状态: […] 当继续传递时, System.Threading.CancellationToken作为参数传递,并且在继续运行之前,令牌的IsCancellationRequested属性为true 。 在这种情况下,延续不会启动并转换为Canceled状态。 上面的代码有效。 但是,我正在将尽可能多的继续转换为使用await关键字。 是否存在使用await的等效项,允许在等待任务完成之前取消继续?

控制台应用程序未关闭

我正在开发一个应该在WinCE 6.0和WinCE 7.0下运行的console应用程序。 我出于不同的兼容性原因使用C# , Compact Framework 2.0 。 我的应用程序由名为TwinCAT (来自Beckhoff)的外部运行时启动。 在这个应用程序中,我的队友使用了一个名为nt_startProcess ( 此处为文档)的function块,负责根据需要启动我的应用程序。 我的问题 – 两种不同的行为取决于操作系统: 从cmd行手动启动(不使用TwinCAT)时: 我的应用程序在两个系统上都表现正常。 这意味着,应用程序启动,显示“Hello World”,然后返回到cmd行。 从TwinCAT开始时: a)在WinCE 6.0 ,我可以看到cmd行打开,显示“Hello World”并立即关闭。 对我来说是完美的行为 b)在WinCE 7.0 ,我可以看到cmd行打开,显示“Hello World”但它仍然保持打开状态。 这是我的问题! 代码段: using System; using System.Collections.Generic; using System.Text; namespace MyBasicExample { class Program { static void Main(string[] args) { Console.WriteLine(“Hello World”); } } } […]

打包url和unit testing。 我的环境有问题吗?

所以我有一个很好的小MVVM解决方案,而且工作得很好。 我有一个标题栏的视图模型,根据应用程序的状态调整图标等。我已经完成验收测试,视图模型工作得很好。 所以我想对这个视图模型的行为进行unit testing 。 我创建了我的unit testing项目,为视图模型添加了一个新的unit testing,并编写了一个简单的冒烟测试。 (即给定模拟依赖项,类将实例化)。 巴姆,不 但是,正常运行时该类工作正常。 经过进一步检查,我的错误如下: TestInitialize threw exception: System.UriFormatException: Invalid URI: Invalid port specified. 因此,在调用堆栈之后,我得出的结论是,用于加载资源流的包URL是踢错误的。 pack://application:,,,/Operations.Shell;component/Media/Images/User_Normal.png (注意: Operations.Shell是程序集名称,/ /Media/Images/User_Normal.png / /Media/Images/User_Normal.png / /Media/Images/User_Normal.png是图像路径/名称,此包URL在实践中有效。) 我的User_Normal.png包含的URL是否存在,文件是否存在,资源是否已正确打包到程序集中(使用reflection器检查)。 问题来自System.Uri类无法解释包URL。 这是我迷路的地方 。 为什么这不适用于测试范围。 我在我的测试项目中引用了所有WPF程序集: WindowsBase PresentationCore PresentationFramework System.Xaml 我错过了什么? 更新 好吧原来的问题是UriHandler没有注册包url。 (感谢Julien Lebosquain)现在已经修复了它仍然存在问题。 TestInitialize threw exception: System.NotSupportedException: The URI prefix is not recognized. […]

如何将LambdaExpression转换为类型化表达式<Func >

我正在为nHibernate动态构建linq查询。 由于依赖关系,我想在以后转换/检索键入的表达式,但到目前为止我还没有成功。 这不起作用(演员应该发生在其他地方): var funcType = typeof (Func).MakeGenericType(entityType, typeof (bool)); var typedExpression = (Func)Expression.Lambda(funcType, itemPredicate, parameter); //Fails 这是有效的: var typedExpression = Expression.Lambda<Func>(itemPredicate, parameter); 是否有可能从LambdaExpression获取’封装’类型表达式?

冻结的最后一行DataGridView作为列的总和?

是否可以将DataGridView的最后一行作为列的总和,并且最后一行始终显示/被冻结?

AutoMapper并将日期时间转换为字符串

我无法理解以下问题。 我有一种感觉它是LINQ和表达式树的限制,但不确定如何接受lambda体。 我可以在不创建自定义转换器的情况下实现此目的 Mapper.CreateMap() .ForMember(x => x.DateCreated, opt => opt.MapFrom(src => { var dt = (DateTime)src.DateCreated; return dt.ToShortDateString(); })); 我收到此错误: 带有语句主体的lambda表达式无法转换为表达式树

这是在C#中没有空检查的情况下触发/调用事件的更好方法吗?

我见过的大多数代码使用以下方式来声明和调用事件触发: public class MyExample { public event Action MyEvent; // could be an event EventHandler, too private void OnMyEvent() { var handler = this.MyEvent; // copy before access (to aviod race cond.) if (handler != null) { handler(); } } public void DoSomeThingsAndFireEvent() { // … doing some things here OnMyEvent(); } } 甚至ReSharper也会按照上面提到的方式生成一个调用方法。 为什么不这样做: […]