问题列表 - 第20133页

什么时候在ADO.NET中编写的db事务实际上开始了?

数据库密集型应用程序中的关键之一是使事务尽可能短.

今天我想知道这笔交易何时会开始:

using (SqlConnection sqlConnection = new SqlConnection(connectionString))
    {
        sqlConnection.Open();
/*(1)*/ SqlTransaction sqlTransaction = sqlConnection.BeginTransaction(IsolationLevel.ReadUncommitted); 

        //Perform some stuff
        //...

/*(2)*/ using (SqlCommand command = new SqlCommand(sqlQuery, sqlConnection, sqlTransaction))  
        {
             //Some other stuff
             //...
             try
             {
                 /*(3)*/sqlCommand.ExecuteNonQuery();
                 //More irrelevant code
                 //...
                 sqlCommand.CommandText = otherQuery;
                 sqlCommand.ExecuteNonQuery();
                 sqlTransaction.Commit();
             }
             catch(Exception)
             {
                 sqlTransaction.Rollback();
                 throw;
             }
        }
  }
Run Code Online (Sandbox Code Playgroud)

在步骤(1),(2)或(3)中?理想情况下,它应该在第3步.

.net c# sql-server ado.net transactions

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

猜猜哈希函数?

我想知道采用哪种算法.我强烈认为它很简单,而且很有希望.例如,生成结果没有延迟.

输入:任何字符串
输出:5个十六进制字符(0-F)

我可以访问尽可能多的键和结果,但我不知道我是如何利用它来攻击函数的.有什么方法吗?如果我知道任何转换为​​5-chars的函数开始,那么我可能会对盐或其他东西蛮力.

我知道例如:
a = 06a07
b = bfbb5
c = 63447
(如果你有什么想法的话)

在正常使用中,它将随机32字符串转换为5字符串.

algorithm hash

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

823
推荐指数
19
解决办法
59万
查看次数

在经典的asp中对数组进行分组?

我在ASP中有一个如下所示的数组:

3,5,7,7,3,2,3
Run Code Online (Sandbox Code Playgroud)

我想要做的是将它们与计数分组,这样我就可以:

Number  Count
2       1
3       3
5       1
7       2
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样的话?

vbscript asp-classic

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

如何处理WPF应用程序实例化过程中抛出的异常?

我使用以下代码来显示 WPF 应用程序中未处理的异常:


        public MyApplication() {
            this.DispatcherUnhandledException += (o, e) => {
                var exceptionMessage = new ExceptionWindow();
                exceptionMessage.ExceptionMessage.Text = e.Exception.Message;
                exceptionMessage.ExceptionCallStack.Text = e.Exception.StackTrace;
                exceptionMessage.ExceptionInnerException.Text = e.Exception.InnerException.Message;
                exceptionMessage.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                exceptionMessage.WindowStyle = WindowStyle.ToolWindow;
                exceptionMessage.ShowDialog();
                e.Handled = true;
                Shell.Close();
            };
        }
Run Code Online (Sandbox Code Playgroud)

事实证明,我在应用程序实例化期间出现异常,因此应用程序构造函数永远不会执行。

重现它的一种简单方法(有不同的例外)是在应用程序配置文件中的某些标记之前引入额外的“<”并运行它。

在调用应用程序构造函数之前会出现类似这样的无用错误消息。 替代文本http://srtsolutions.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mikewoelmer/ExceptionWPF1_5F00_1C1F39AA.jpg

有谁知道如何捕获此类异常?

备注:我正在使用Caliburn,并且我的应用程序扩展了 CaliburnApplication。

wpf constructor exception caliburn

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

删除所有本地更改集并还原为树

我正在使用Mercurial,我在当地遇到了一个可怕的混乱,有三个头.我无法推送,我只想删除所有本地更改和提交,然后重新开始使用完全干净的代码和干净的历史记录.

换句话说,我希望最终得到(a)与远程分支的尖端中存在的本地完全相同的代码,以及(b)没有任何本地提交的历史记录.

我知道会hg update -C覆盖任何本地更改.但是如何删除任何本地提交?

要清楚,我没有兴趣保留我在当地完成的任何工作.我只想要最简单的方法来恢复到完全干净的本地结账.

version-control mercurial dvcs head

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

Openoffice - CSV-export:有一个默认的escape-charcter吗?

据我所知,OpenOffice在将文件保存为csv文件时,将所有字符串括在引号字符中.

那么是否需要逃脱角色?

并且与这个问题有关:

OpenOffice是否有默认的转义字符?

csv escaping openoffice-calc

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

添加SOAP:HEADER用户名和密码与WSE 3.0

我已经成功创建了一个在不使用身份验证时正常工作的WS客户端.

但是,服务器(WebSphere)现在需要添加一个ws-security用户名令牌,而我很难做到这一点.生成的SOAP消息应该看起来像这样:

<soapenv:Envelope 
  xmlns:ns="http://foo.bar/1.0"
  xmlns:ns1="http://www.witsml.org/schemas/140"   
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

  <soapenv:Header>

    <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
      <wsse:UsernameToken wsu:Id="UsernameToken-2" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <wsse:Username>foo</wsse:Username>
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">bar</wsse:Password>    
        <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">foooooobar==</wsse:Nonce>
        <wsu:Created>2010-01-25T13:09:24.860Z</wsu:Created>
      </wsse:UsernameToken>
    </wsse:Security>

  </soapenv:Header>

  <soapenv:Body>
    <ns:fooBar>...</ns:fooBar>
  </soapenv:Body>
Run Code Online (Sandbox Code Playgroud)

我已经下载并安装了Microsoft的WSE 3.0 SDK,并在我的Visual Studio 2005项目中添加了对DLL的引用.

我现在可以访问Microsoft.Web.Services3.*命名空间,但我目前难以理解如何继续.

客户端代码是由Web引用自动生成的,因此我只做了少量工作就将消息发送到未经身份验证的服务器:

WS.FooResultHttpService ws = new WS.FooResultHttpService();
ws.Url = "http://foo.bar.baz";
ws.SendSomething(message);
Run Code Online (Sandbox Code Playgroud)

我刚开始调查使用Microsoft.Web.Services3.Security.Tokens.UsernameTokenManager,但到目前为止,我还没有能够得到任何东西.

任何提示将不胜感激,因为我似乎无法在网上找到任何好的食谱.

谢谢!

c# ws-security web-services wse3.0

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

从C#构建Python脚本和调用方法

有没有办法让这个场景有效?

有一个Python脚本.它通过使用IronPython运行此脚本而内置到DLL中:

import clr
clr.CompileModules("CompiledScript.dll", "script.py")
Run Code Online (Sandbox Code Playgroud)

目标是从C#代码调用此DLL的方法..NET Reflector显示DLL中有一个类 - DLRCashedCode我们感兴趣的方法是此类的私有静态方法.

例如,脚本中有一个函数:

def scriptMethod(self, text):
...
Run Code Online (Sandbox Code Playgroud)

它在DLL中的表示是:

private static object scriptMethod(Closure closure1, PythonFunction $function, object self, object text)
{
...
}
Run Code Online (Sandbox Code Playgroud)

Closure并且PythonFunction是IronPython类(来自Microsoft.Scripting.dll和IronPython.dll).

到现在为止还挺好.是否有可能通过C#代码调用此方法?使用反射的想法

Type t = typeof(DLRCachedCode);

string methodName = "scriptMethod";
MethodInfo method = t.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Static);

object[] parameters = new object[] { "param1", "param2" };  // the "params problem"
method.Invoke(null, parameters);
Run Code Online (Sandbox Code Playgroud)

因为设置方法的参数似乎更难.如果它们(如何)正确初始化,我们是否可以期望该方法能够顺利运行?

有没有更好的方法从C#调用此方法?出于各种不同的原因,我们希望将脚本构建为.NET程序集,而不是调用脚本本身.

c# python ironpython

10
推荐指数
2
解决办法
7538
查看次数

.NET反思问题

以下代码(打包在'Console Application'Visual Studio项目中):

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

namespace TestReflection
{
    class Program
    {
        static void Main(string[] args)
        {
            bool found = false;
            foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
            {
                if (assembly.GetType("System.Diagnostics.Process") != null)
                {
                    found = true;
                    break;
                }
            }
            Console.WriteLine(found);
            Console.ReadKey();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在调试模式(F5)下运行时打印'True',但在没有调试器的情况下启动它时为'False'(Ctrl-F5).其他类显示类似的行为(System.Text.RegularExpressions.Regex),其他类在两种情况下都可以找到(System.IO.File).

我可能错过了一些明显的东西 - 为什么会这样?

(同样的事情发生在Visual Studio 2005和2008中).

UPDATE

找到的组件列表:

调试模式:

mscorlib
TestReflection
System
Microsoft.VisualStudio.HostingProcess.Utilities
System.Windows.Forms
Run Code Online (Sandbox Code Playgroud)

运行模式:

mscorlib
TestReflection
Run Code Online (Sandbox Code Playgroud)

正如答案所暗示的那样,在运行模式下,系统组件丢失(未加载).我的问题是我假设GetAssemblies()也返回未加载的程序集.

虽然这解释了行为System.Diagnostics.Process,为什么我的代码System.IO.File在运行和调试模式下都能找到?

谢谢!

更新2

我已经将代码更改为循环加载的程序集和当前程序集,收集这些程序集引用的程序集列表.如果迭代加载的程序集后我找不到我正在寻找的类型,我开始加载并检查引用的程序集.

看来即使我 …

.net reflection

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