javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

带有参数的SqlCommand转换为DataTab

我正在改编别人编写的一些代码,为了节省时间,需要返回一个DataTable。

我有这样的代码:

using (SqlCommand command = new SqlCommand(query, conn))
{
      //add parameters and their values

      using (SqlDataReader dr = command.ExecuteReader())
      {
          return dr;
      }

但是,返回数据表的最佳方法是什么?

trans by 2020-08-08T14:25:10Z

.net 3.5-使用数据注释对相关属性进行自定义模型验证

从现在开始,我使用了出色的FluentValidation库来验证我的模型类。 在Web应用程序中,我将其与jquery.validate插件结合使用以执行客户端验证。一个缺点是,许多验证逻辑在客户端重复,并且不再集中在单个位置。

因此,我正在寻找替代方案。 那里有许多示例显示了使用数据注释执行模型验证的过程。 看起来很有希望。我找不到的一件事是如何验证依赖于另一个属性值的属性。

让我们以以下模型为例:

public class Event
{
    [Required]
    public DateTime? StartDate { get; set; }
    [Required]
    public DateTime? EndDate { get; set; }
}

我想确保ValidationContext大于StartDate。我可以编写一个自定义验证属性扩展ValidationAttribute以便执行自定义验证逻辑。 不幸的是,我找不到办法模型实例:

public class CustomValidationAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        // value represents the property value on which this attribute is applied
        // but how to obtain the object instance to which this property belongs?
        return true;
    }
}

我发现CustomValidationAttribute似乎可以完成任务,因为它具有ValidationContext属性,该属性包含正在验证的对象实例。 不幸的是,此属性仅在.NET 4.0中添加。 所以我的问题是:我可以在.NET 3.5 SP1中实现相同的功能吗?


更新:

似乎FluentValidation已在ASP.NET MVC 2中支持客户端验证和元数据。

尽管如此,还是要知道是否可以使用数据注释来验证相关属性。

trans by 2020-08-06T06:28:51Z

CodeGo.net> LINQ-在IEnumerable中选择第二项

我有

string[] pkgratio= "1:2:6".Split(':');

var items = pkgratio.OrderByDescending(x => x);

我想选择中间值,并提出了这个建议。 这是在IEnumberable中选择第二个值的正确方法吗?

pkgratio.Skip(1).Take(1).First();
trans by 2020-08-05T09:25:52Z

.net 3.5-TFS生成服务器-CSC:致命错误CS2008:未指定输入

当我们构建解决方案或错误所指向的特定项目时,我们会在构建服务器上收到上述错误消息。

我们可以使用Visual Studio(也在构建服务器上)毫无问题地构建解决方案,但是在运行msbuild时,它会因上述错误而失败。

有任何想法吗?

trans by 2020-08-02T00:13:22Z

.net-C#中缺少用于类型安全数据绑定的'nameof'运算符的解决方法?

在C#中包含nameof运算符引起了很多人的兴趣。 作为此运算符如何工作的示例,nameof(Customer.Name)将返回字符串"Name"

我有一个域对象。 而且我必须绑定它。 然后,我需要属性名称作为字符串。 我希望它们是类型安全的。

我记得在.NET 3.5中遇到了一种变通方法,该变通方法提供了nameof的功能并涉及到lambda表达式。 但是,我无法找到此解决方法。 谁能为我提供解决方法?

如果可能的话,我也对在.NET 2.0中实现nameof功能的方法感兴趣。

trans by 2020-08-01T07:57:53Z

c#-从字典中获取第一个元素

我有以下声明:

Dictionary<string, Dictionary<string, string>> like = new Dictionary<string, Dictionary<string, string>>();

我需要获取第一个元素,但不知道键或值。 最好的方法是什么?

trans by 2020-07-30T15:30:54Z

.Net Framework 4.0安装程序是否包括.Net Framework 3.5?

根据.Net Framework 3.5编译的.Net组件是否可以在仅安装.Net Framework 4.0的系统上运行?

换句话说,.Net Framework 4.0安装程序是否包括.Net Framework 3.5?

trans by 2020-07-20T10:30:10Z

LINQ-在一个列表中查找不在另一个列表中的所有项目

我陷入了LINQ查询(或完成同一件事的任何其他有效方式)的困扰。 有人可以告诉我如何选择一个列表中没有的所有项目吗?

基本上,我有一个通过匹配其他两个列表之间的项目而形成的列表。 我需要在第一个列表中找到所有未找到匹配项的项目。 有人可以在下面的第二个LINQ查询中用星号填充达到该目标的查询吗? 如果使用的是TSQL,我会做SELECT * NOT IN (),但我认为LINQ不允许这样做。

//Create some sample lists.
List<IdentifierLookupData> list1 = new List<IdentifierLookupData> { /*Init */ };
List<IdentifierLookupData> list2 = new List<IdentifierLookupData> { /*Init */ };

//Find all items in list1 and list2 that match and store them in joinItems.
var joinItems = (from d1 in list1
    join d2 in list2 on d1 equals d2
    select d1).ToList<IdentiferLookupData>();

//Find all items in list1 not in joinItems.
var deletedItems = (from d1 in list1
     ***select all items not found in joinItems list.***
trans by 2020-07-20T04:56:10Z

c#-计算lis中出现次数的方法

有没有一种简单的方法可以将列表中所有元素出现在C#中的同一列表中的次数计数?

像这样:

using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Linq;

string Occur;
List<string> Words = new List<string>();
List<string> Occurrences = new List<string>();

// ~170 elements added. . . 

for (int i = 0;i<Words.Count;i++){
    Words = Words.Distinct().ToList();
    for (int ii = 0;ii<Words.Count;ii++){Occur = new Regex(Words[ii]).Matches(Words[]).Count;}
         Occurrences.Add (Occur);
         Console.Write("{0} ({1}), ", Words[i], Occurrences[i]);
    }
}
trans by 2020-07-11T07:23:40Z

实体框架-更新edmx以反映数据库中所做的更改(.net linq-to-entities)

  • 因此,我制作了edmx。
  • 然后,我对数据库进行了一些更改,将列从NOT NOT NULL更改为允许NULL。
  • 我进入edmx,右键单击并选择“从数据库更新模型”

现在我进入程序,它实际上没有更新...我不能在该列中输入null。 我该怎么做才能正确更新edmx? 谢谢。

trans by 2020-07-10T04:05:29Z

我可以在.Net 3.5项目中使用任务并行库吗?

我听说可以在.Net 3.5项目中使用“任务并行库”。 这是正确的吗?如果是,该如何使用? 在.Net 4.0中,它驻留在System.Threading中,但是当我在Visual Studio 2010中选择.Net 3.5作为目标时,则无法访问诸如Parallel和Parallel循环之类的类。

trans by 2020-07-09T12:11:41Z

asp.net-加载事件后,我可以在C#中的div标签内动态添加HTML吗?

请注意,我正在使用母版页,但是我可以在该页中找到一个div并在其中放置一些html吗? 谢谢。

trans by 2020-07-06T06:44:29Z

LINQ将List <U>转换为List <T>

我有2个类,它们具有一些相同的属性。我将第一个类的属性存储到列表中,然后,我想获取一些需要的属性并将它们放入第二类类型的列表中。我已经通过C#进行了强制转换,并且运行正常,但是我必须使用LINQ。 我试图做点事情,但没有取得好的结果。 请给我一些建议。

一等舱:

   public class ServiceInfo {
    private long _id;
    public long ID {
        get { return this._id; }
        set { _id = value; }
    }

    private string _name;
    public string Name {
        get { return this._name; }
        set { _name = value; }
    }

    private long _qty;
    public long Quantity {
        get { return this._qty; }
        set { _qty = value; }
    }

    private double _amount;
    public double Amount {
        get { return this._amount; }
        set { _amount = value; }
    }

    private string _currency;
    public string Currency {
        get { return this._currency; }
        set { _currency = value; }
    }

    private DateTime? _date;
    public DateTime? Date {
        get { return this._date; }
        set { _date = value; }
    }
}

二等舱:

class InvoiceWithEntryInfo {
    private string currencyField;

    private long IdField;
    public long IdIWEI {
        get { return this.IdField; }
        set { IdIWEI = value; }
    }

    private string nameField;
    public string NameIWEI {
        get { return this.nameField; }
        set { NameIWEI = value; }
    }

    private long qtyField;
    public long QuantityIWEI {
        get { return this.qtyField; }
        set { QuantityIWEI = value; }
    }

    private double amountField;
    public double AmountIWEI {
        get { return this.amountField; }
        set { AmountIWEI = value; }
    }

    private DateTime dateField;
    public DateTime? DateIWEI {
        get { return this.dateField; }
        set { DateIWEI = value; }
    }

    public string OwnerIWEI {
        get; set;
    }
}

运行正常的C#示例:...

var sil = new List<ServiceInfo>();
var iweil = new List<InvoiceWithEntryInfo>();

...

if (sil != null)
    {
        foreach (ServiceInfo item in sil)
        {
            iweil.Add(new InvoiceWithEntryInfo
                {
                    IdIWEI = item.ID,
                    AmountIWEI = item.Amount,
                    DateIWEI = item.Date
                });
        }

不能运行OK的LINQ示例:

            iweilCOPY = sil.ConvertAll<InvoiceWithEntryInfo>(a => (InvoiceWithEntryInfo)a);

            iweilCOPY = sil.FindAll(a => (sil is InvoiceWithEntryInfo)).ConvertAll<InvoiceWithEntryInfo>(a => (InvoiceWithEntryInfo)a);
trans by 2020-07-04T19:15:13Z

更改文本框高度?

如何更改文本框的高度?

以下任何一项都不起作用:

this.TextBox1.Size = new System.Drawing.Size(173, 100);

要么

this.TextBox1.Size.Height = 100;

我希望能够更改单行文本框的高度以适合其上的字体大小,并且尽可能不使用多行。

trans by 2020-07-01T23:39:23Z

CGI-Guid == null不应该被compi允许

下面描述的行为仅特定于.net-3.5

我只是遇到了C#编译器中最惊人的行为;

我有以下代码:

Guid g1 = Guid.Empty;
bool b1= (g1 == null);

好吧,Guid不能为空,因此它永远不能等于null。我在第2行进行的比较始终返回false。

如果对整数进行相同处理,则编译器会发出警告,指出结果始终为false:

int x=0;
bool b2= (x==null);

我的问题是:为什么编译器允许您将Guid与null进行比较?
据我所知,它已经知道结果总是错误的。
内置转换是否以编译器认为可能为null的方式完成?
我在这里想念什么吗?

trans by 2020-06-26T15:52:33Z

查看用户是否属于C#+ Asp.n中的Active Directory组

我需要一种方法来查看用户是否属于我的.Net 3.5 asp.net c#应用程序中的活动目录组。

我正在使用msdn之外的标准ldap身份验证示例,但是我真的看不到如何检查组。

trans by 2020-06-23T23:06:50Z

泛型-解释为什么IEnumerable比Lis更有效

我一直听说,在.net 3.5中,您应该在列表上使用IEnumerable,但是我找不到任何参考资料或文章来解释为什么它如此精通。 有人知道任何解释此内容的内容吗?

提出这个问题的目的是为了更好地了解IEnumerable在幕后所做的事情。 如果您可以提供任何链接,我将进行研究并发布答案。

trans by 2020-06-19T01:09:06Z

.net-创建新的GUI时,WPF是Windows Forms的首选选择吗?

Windows窗体的大多数限制和技巧对大多数程序员来说都是常见的。 但是从.NET 3.0开始,Windows Presentation Foundation也提供了WPF。 据说您可以使用它来简化“性感应用程序”,而使用.NET 3.5 SP1,它可以在执行时大大提高速度。

但是另一方面,WPF的许多工作也有所不同。 我不会说这比较困难,但是您必须从头开始学习“一切”。

我的问题:当您必须创建一个新的GUI并且项目没有时间压力时,花这些额外的时间值得吗?

trans by 2020-06-18T22:14:52Z

首页> C#>如何确定两个哈希集是否相等(按值,而不是引用)?

我试图确定.NET 3.5(C#)中的两个HashSet对象是否相等,即包含相同的值。 这似乎是人们显然想做的事情,但是提供的功能似乎都没有给您这些信息。

我可以想到的方式是通过检查两组的计数是否相等以及一组是否为另一组的子集(不合适)。 我认为唯一可能发生的方法是如果它们相等。 示例代码:

HashSet<int> set1 = new HashSet<int>();
set1.Add(1);
set1.Add(2);
set1.Add(3);

HashSet<int> set2 = new HashSet<int>();
set2.Add(1);
set2.Add(2);
set2.Add(3);

if(set1.Count == set2.Count && set1.IsSubsetOf(set2))
{
    // do something
}

这将始终有效吗? 有没有更好的办法? 为什么HashSet没有public bool IsEqualSetWith()功能?

trans by 2020-02-10T08:45:26Z

c#-替换Process.AppDomains开始

背景

我有一个Windows服务,该服务使用各种第三方DLL对PDF文件执行工作。 这些操作可能会占用大量系统资源,并且偶尔会在发生错误时遭受内存泄漏。 DLL是围绕其他非托管DLL的托管包装器。

当前解决方案

在一种情况下,我已经通过将调用包装到专用控制台应用程序中的一个DLL并通过Process.Start()调用该应用程序来缓解此问题。 如果该操作失败,并且存在内存泄漏或未释放的文件句柄,则实际上并不重要。 该过程将结束,操作系统将恢复该句柄。

我想将相同的逻辑应用于应用程序中使用这些DLL的其他位置。 但是,对于在解决方案中添加更多控制台项目,以及编写更多调用Process.Start()并解析控制台应用程序输出的样板代码,我并不感到兴奋。

新解决方案

专用控制台应用程序和Process.Start()的绝佳替代方法似乎是使用AppDomain,例如:[http://blogs.geekdojo.net/richard/archive/2003/12/10/428.aspx。]

我已经在我的应用程序中实现了类似的代码,但是单元测试并不令人满意。 我在单独的AppDomain中为测试文件创建一个FileStream,但不要对其进行处理。 然后,我尝试在主域中创建另一个FileStream,由于未释放的文件锁,它失败了。

有趣的是,将一个空的DomainUnload事件添加到工作域使单元测试通过。 无论如何,我担心也许创建“ worker” AppDomains无法解决我的问题。

有什么想法吗?

代码

/// <summary>
/// Executes a method in a separate AppDomain.  This should serve as a simple replacement
/// of running code in a separate process via a console app.
/// </summary>
public T RunInAppDomain<T>( Func<T> func )
{
    AppDomain domain = AppDomain.CreateDomain ( "Delegate Executor " + func.GetHashCode (), null,
        new AppDomainSetup { ApplicationBase = Environment.CurrentDirectory } );

    domain.DomainUnload += ( sender, e ) =>
    {
        // this empty event handler fixes the unit test, but I don't know why
    };

    try
    {
        domain.DoCallBack ( new AppDomainDelegateWrapper ( domain, func ).Invoke );

        return (T)domain.GetData ( "result" );
    }
    finally
    {
        AppDomain.Unload ( domain );
    }
}

public void RunInAppDomain( Action func )
{
    RunInAppDomain ( () => { func (); return 0; } );
}

/// <summary>
/// Provides a serializable wrapper around a delegate.
/// </summary>
[Serializable]
private class AppDomainDelegateWrapper : MarshalByRefObject
{
    private readonly AppDomain _domain;
    private readonly Delegate _delegate;

    public AppDomainDelegateWrapper( AppDomain domain, Delegate func )
    {
        _domain = domain;
        _delegate = func;
    }

    public void Invoke()
    {
        _domain.SetData ( "result", _delegate.DynamicInvoke () );
    }
}

单元测试

[Test]
public void RunInAppDomainCleanupCheck()
{
    const string path = @"../../Output/appdomain-hanging-file.txt";

    using( var file = File.CreateText ( path ) )
    {
        file.WriteLine( "test" );
    }

    // verify that file handles that aren't closed in an AppDomain-wrapped call are cleaned up after the call returns
    Portal.ProcessService.RunInAppDomain ( () =>
    {
        // open a test file, but don't release it.  The handle should be released when the AppDomain is unloaded
        new FileStream ( path, FileMode.Open, FileAccess.ReadWrite, FileShare.None );
    } );

    // sleeping for a while doesn't make a difference
    //Thread.Sleep ( 10000 );

    // creating a new FileStream will fail if the DomainUnload event is not bound
    using( var file = new FileStream ( path, FileMode.Open, FileAccess.ReadWrite, FileShare.None ) )
    {
    }
}
trans by 2020-02-10T00:19:36Z

1 2 3 4 下一页 共4页