小编Cha*_*ana的帖子

来自DocumentFormat.OpenXml的程序集加载错误

使用Microsoft ClosedXmlDocumentFormat.OpenXmlNuGet实用程序包时出现错误。更新了这些NuGet程序包(从2.7.2版到2.8.1版)后,现在出现以下异常:

异常System.IO.FileLoadException:无法加载文件或程序集'DocumentFormat.OpenXml,版本= 2.7.2.0,区域性=中性,PublicKeyToken = 8fb06cb64d019a17'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)

当我查看解决方案项目中的相关程序集时,它引用了正确的版本(2.8.1)。查看NuGet程序包管理器,没有对旧版2.7.2的引用(4个项目对新版2.8.1的引用)。在任何有关版本2.7.2的项目引用中,我都找不到任何提及。正在执行的应用程序文件夹中的文件也是正确的文件(2.8.1)(通过查看项目属性窗口的详细信息选项卡)。在我的解决方案中的其他地方,对旧版本号的引用(显然是导致此异常的地方)可以找到吗?

附加信息:我已经grep在执行此操作的应用程序目录(包括子目录)中的所有文件(包括二进制文件)上执行了操作,并且2.7.2找不到字符串。

另外,当我在Visual Studio中调试此程序时,它不会抛出异常。但是,当我在部署的构建文件夹中运行它时,我得到FileLoadException。

.net assembly-loading closedxml

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

一个类是否可以从另一个类继承并同时实现了一个接口?

有点像

public partial class RegistrationForm : 
          IRegistrationForm, System.Web.UI.UserControl
Run Code Online (Sandbox Code Playgroud)

但这个例子不起作用.

c# inheritance

4
推荐指数
2
解决办法
2342
查看次数

确定WHERE语句的哪个部分失败

假设我有一个这样的SQL语句来检查用户登录:

SELECT * FROM users 
WHERE username='test@example.com', password='abc123', expire_date>=NOW();
Run Code Online (Sandbox Code Playgroud)

SQL中是否有一种方法可以确定哪些WHERE条件失败,而不必将每个条件分成自己的查询并单独测试?

在此特定示例中,它将允许开发人员准确地告诉用户他们尝试登录失败的原因.

出于我的目的,我正在使用PHP/MySQL.

php mysql sql where conditional-statements

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

仅当sum大于值时才返回行

我已经构建了这个SQL Query,它搜索所有策略号并返回所有多个PPOLNO货币值的总和:

SELECT PPOLNO, SUM(PPRMPD) AS SUM 
FROM PFNTLPYMTH 
WHERE SUM(PPRMPD) >= 5000 
  AND  ((PYEAR=2012 AND PMONTH >=3 
  AND PDAY >=27) OR (PYEAR=2013 
  AND PYEAR <=3 AND PDAY<=27))
GROUP BY PPOLNO
Run Code Online (Sandbox Code Playgroud)

我正在做的只是在SUM> =特定值时才返回它们.这可能吗?怎么样?我试过这个:

SELECT PPOLNO, SUM(PPRMPD) AS SUM FROM PFNTLPYMTH
WHERE SUM(PPRMPD) >= 5000 AND ((PYEAR=2012 AND PMONTH >=3 AND PDAY >=27) OR (PYEAR=2013 
AND PYEAR <=3 AND PDAY<=27)) GROUP BY PPOLNO
Run Code Online (Sandbox Code Playgroud)

但无济于事.我刚刚尝试输入WHERE SUM> = 5000,但是再一次没有.

任何帮助将不胜感激.

  • 玩笑

sql db2 sum

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

从ADO.NET使用并涉及触发器时Oracle事务的范围?

有人告诉我,当从ADO.net调用Oracle时,在循环中调用多个插入时,每个插入都会触发一个触发器,包括在其PL-Sql中的一个提交语句,它是不可能停止该提交的实际上是在提交交易.

即,我希望我的ADO.Net代码在循环开始之前开始一个事务,并且,当循环退出时,只有当循环中的每个插入成功时才提交所有插入.我的消息来源告诉我Oracle的工作方式,如果这些触发器包含COmmit语句,那么这是不可能的..

因为这似乎是一个非常普遍的要求,我知道在SQL Server中这是可能的,这对我来说似乎不对.

它是否正确?

oracle ado.net triggers transactions

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

综合安全

是否有托管代码(不添加COM组件或包装调用C++例程)的方式将集成安全性添加到C#托管代码程序集?

即我想编写一个客户端 - 服务器系统,其中服务器使用远程处理而不是IIS,但我希望客户端自动将其凭据传递给服务器,就像浏览器与启用集成安全性的IIS服务器通信时一样. .

可以这样做吗?如果是的话,哪里有一些例子?

c# remoting windows-authentication

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

覆盖类上的==和!=

是否有任何方法可以在类上执行此操作并仍保留检测Type的变量是否为空的功能?我可以为结构执行此操作,(因为struct不能真正为null,使用结构,而不是将x与null进行比较,您使用单独的方法caleld IsNull或HasValue ...但是您不能将该技术用于类的原因是当类变量为null时,你当然不能调用这样的实例方法了!

public class myClass: IEquatable<myClass>
{
    public int IntValue { get; set; }
    public static bool operator ==(myClass cA, myClass  cB)
    { return cA is myClass && cB is myClass && cB.Equals(cA); }
    public static bool operator !=(myClass cA, myClass cB)
    { return !(cA == cB); }       
    public override bool Equals(object o) 
    { return o is myClass && this == (myClass)o; }
    public override bool Equals(myClass o) 
    { return IntValue == o.IntValue; }

} 
Run Code Online (Sandbox Code Playgroud)

但是当我走的时候:

myClass x;
if …
Run Code Online (Sandbox Code Playgroud)

c# operator-overloading

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

在Oracle查询中减去两个数值列值

我需要减去两个列值,并在选择查询中显示输出列。

SELECT c.name,
    (SELECT SUM(p.qty*s.price)
     FROM stock s, purchase p 
     WHERE s.company = p.company 
     GROUP BY p.company) 
 MINUS 
    (SELECT SUM(p.price*p.qty) 
     FROM stock s, purchase p 
     WHERE s.company = p.company 
     GROUP BY p.company)  AS "Profit/Lost" 
 FROM purchase p, client c, stock s 
 WHERE  s.company = p.company 
     AND c.clno = p.clno  
 GROUP BY p.company;
Run Code Online (Sandbox Code Playgroud)

但是它将显示一个错误。怎么解决?

sql oracle

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

访问修改后的Closure

这会失败吗?Resharper将此报告为"访问已修改的闭包"的实例是否会为每个值触发lambda?迭代器是否在this更改first运行的行之前生成所有间隔值的完整列表?或者是first = itvl; 为了达到迭代而运行的行,并且改变了first用于后续迭代的值?

 public HourInterval FirstInterval
    {
        get
        {
            var first = HourInterval.Make(DateTime.MaxValue);
            foreach (var itvl in this.Where
                        (itvl => itvl < first))
                first = itvl;
            return first;
        }
    }
Run Code Online (Sandbox Code Playgroud)

注意. HourInterval是一个值类型结构,表示每个一小时的日历时间......并且this是一个对象的IEnumerable集合HourInterval

编辑:

以上是Resharper建议从以下foreach构造转换为LINQ表达式的内容......

    public HourInterval FirstInterval
    {
        get
        {
            var first = HourInterval.Make(DateTime.MaxValue);
            foreach (var itvl in this)
               if(itvl < first)
                  first = itvl;
            return first;
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# lambda

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

C#如何在List集合中查找值

我有一个列表,此列表包含以下类的集合

public class MyFile
{
    public string FileName
    {
        get;
        set;
    }

    public int Position
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,列表定义将如下所示:

private List<MyFile> MyFiles = new List<MyFile>();
Run Code Online (Sandbox Code Playgroud)

我也可以使用以下方法搜索集合:

MyFile tmpFile = MyFiles.Find(delegate(MyFile item) 
   { return item.FileName == fileName; });
Run Code Online (Sandbox Code Playgroud)

到目前为止看起来不错,除了我想要做的是返回MyFile,它不仅匹配文件名,而且在字段pos中也具有最高值.

因此,如果列表中存在以下项目:

myDocument.doc|1
myDocument.doc|2
myDocument.doc|3
myPDF.pdf|1
myPDF.pdf|2
myPDF.pdf|3
Run Code Online (Sandbox Code Playgroud)

并且我的find方法中的fileName ="myDocument.doc"的值,然后我仍然缺少返回myDocument.doc | 3这个项目的逻辑,因为它具有最高的pos值.

在SQL中,我的查询将是

select top 1 * from MyFiles 
where fileName = 'myDocument.doc' 
order by position desc;
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c#

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