当sproc使用RETURN @value时,你可以使用cmd.ExecuteScalar吗?

你能用吗? int blah = Convert.ToInt32(cmd.ExecuteScalar()); 当sproc的最后一个语句执行时: RETURN @value 我只能这样做才能发挥作用: SELECT @value 另外,这给了我一个对象nullexception: int blah = (int)cmd.ExecuteScalar(); 是不是convert.toint32和(int)相同的东西,但一个是另一个的包装?

我成功地从C#调用了advapi32的LsaEnumerateAccountRights()。 现在我如何解组它返回的LSA_UNICODE_STRING数组呢?

它是指向LSA_UNICODE_STRING结构数组的指针。 我找到了一些反向的代码,即从C#字符串创建一个LSA_UNICODE_STRING 。 您可以在下面的帮助程序代码部分中看到。 我所做的包括对LsaEnumerateAccountRights()的调用似乎工作得很好。 为数组指针和计数返回合理的值。 我不知道如何处理那些爆炸的字符串。 请帮忙? 好吗? 更新: nobugz的帮助函数在下面的答案中几乎是正确的,你只需UnicodeEncoding.CharSize来划分长度。 多亏了他,我现在可以在数组中看到FIRST字符串。 请参阅下面两个代码部分末尾的更新。 现在,我是如何做地狱世界的指针运算? 更新2.5:查看function代码的答案。 我丢失了旧的“错误”代码。

如何在Linq-to-XML中按路径查找XML节点

如果我获得特定节点的路径作为字符串,我可以通过使用XElement(或XDocument)的Linq / Method以某种方式轻松找到所述节点。 有很多不同类型的XML对象,如果作为一个额外的奖励,你可以指出我为什么/如何使用不同类型的指南。 编辑:确定在指向XPathSelectElement后我正在尝试它,所以我可以给他正确的答案我不能让它工作但是。 这是我正在尝试的XML SomeName SomeType Alot 和我的代码 string path = “Product/Name”; string name = xml.XPathSelectElement(path).Value; 请注意我的字符串来自其他地方所以我猜它不一定是文字(至少在调试模式下它看起来像上面的那个)。 我也尝试过添加/在前面。 它给了我一个空参考。

最快/最安全的文件查找/解析?

在c: ,我有成千上万的*.foobar文件。 他们在各种各样的地方(即子市场)。 这些文件大小约为1-64 kb,并且是纯文本。 我有一个class Foobar(string fileContents)强类型这些.foobar文件。 我的挑战是获取c:上所有*.foobar文件的列表,表示为Foobar对象的数组。 最快的方法是什么? 我很想知道是否有一种比我的第一种方法更好的方式(毫无疑问),如果我的这种方法有任何潜在的问题(例如I / O并发问题抛出exception?): var files = Directory.EnumerateFiles (rootPath, “*.foobar”, SearchOption.AllDirectories); Foobar[] foobars = ( from filePath in files.AsParallel() let contents = File.ReadAllText(filePath) select new Foobar(contents) ) .ToArray();

带布局的自定义错误页面

我一直在努力让自定义错误页面工作,并继续寻找回到简单使用静态页面的方法。 虽然静态页面有效,但它需要重新构建我们希望在此时避免的导航栏。 我目前正在使用以下内容指定自定义错误页面。 Asp.neterror handling IISerror handling 有没有一种方法可以实现动态自定义错误页面,可以处理IIS错误和Asp.net错误?

使用WCF的IQueryable问题

我有一个非常简单的WCF服务方法,它返回一个IQueryable,仅用于测试。 也许我在试图了解IQueryable的设计时遇到了什么问题。 我明确计划稍后将其与NHibernate的IQueryable提供程序一起使用。 但是,每当使用返回IQueryable的WCF方法时,我首先遇到某种序列化问题(至少我认为这可能是问题)。 它甚至不适用于简单的字符串。 这是我的代码: public IQueryable GetEquipmentConfigurations() { var returnValue = new List(); returnValue.Add(“test”); return returnValue.AsQueryable(); } 它可能没什么意义,只是为了测试我是否真的使用WCF通过线路获得那些IQueryables。 每当我使用类似SoapUI的客户端调用此方法时,我会收到套接字exception和连接重置,就像我尝试返回未标记为DataContract的内容一样。 但我在这里唯一要做的就是尝试返回一些糟糕的字符串列表。 这有什么问题? 我使用basicHTTPBinding,这是我的设置: 为接口设置OperationContract属性: [OperationContract] IQueryable GetEquipmentConfigurations(); 只返回一个简单的字符串就可以了。 无论如何,我想稍后使用LINQ从IQueryablefunction中获利。 有谁知道这里出了什么问题? 谢谢和干杯, 斯特凡

reflection – 获取lambda表达式中的方法调用列表

我试图找到一种方法来获取C#3.5中lambda表达式内的方法调用列表。 例如,在下面的代码中,我想方法LookAtThis(Action a)来分析lambda表达式的内容。 换句话说,我希望LookAtThis返回Create的MethodInfo对象。 LookAtThis(() => Create(null, 0)); 可能吗? 谢谢!

如何防止工具提示在自定义控件中闪烁?

我已经制作了自定义控件,当条件满足时,我想显示一个工具提示: protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); var plannedItem = GetPlannedItemByPosition(e.Location); if (plannedItem != null) _tooltip.SetToolTip(this, plannedItem.Description); else _tooltip.RemoveAll(); } 此代码工作正常,除了工具提示闪烁的面孔。 这个自定义控件描绘了OnPaint事件中的所有信息,这可能与它有关吗? 如果是这样,我怎样才能防止工具提示闪烁?

从ADO.NET和SMSS执行时,具有相同查询计划的相同查询需要大约10倍的时间

我的查询相当复杂,但我已经简化了它来解决这个问题,现在它是一个简单的JOIN,我在SQL Server 2014数据库上运行。 查询是: SELECT * FROM SportsCars as sc INNER JOIN Cars AS c ON c.CarID = sc.CarID WHERE c.Type = 1 当我从SMSS运行此查询并在SQL事件探查器中观察它时,执行大约需要350毫秒。 当我使用Entity Framework或ADO.NET在我的应用程序中运行相同的查询时(我已尝试过两者)。 执行需要4500ms。 ADO.NET代码: using (var connection = new SqlConnection(connectionString)) { connection.Open(); var cmdA = new SqlCommand(“SET ARITHABORT ON”, connection); cmdA.ExecuteNonQuery(); var query = “SELECT * FROM SportsCars as sc INNER […]

可以返回CryptoStream并且仍然可以正确处理所有内容吗?

如果我有一个我想传递给用户的CryptoStream ,那么天真的方法就是 public Stream GetDecryptedFileStream(string inputFile, byte[] key, byte[] iv) { var fsCrypt = new FileStream(inputFile, FileMode.Open, FileAccess.Read, FileShare.Read); var rmCrypto = new RijndaelManaged(); var transform = rmCrypto.CreateDecryptor(key, iv); var cs = new CryptoStream(fsCrypt, transform, CryptoStreamMode.Read); return cs; } 我知道当我处理CryptoStream ,底层的FileStream 也将被处理掉 。 我正在运行的问题是我如何处理rmCrypto和transform ? RijndaelManaged和ICryptoTransform是一次性类,但处理流不会处理这两个对象。 处理这种情况的正确方法是什么?