小编hor*_*rgh的帖子

如何提高数据插入/更新性能?

我需要提高数据加载的性能.当前的algorythm从表中完整选择:

select Field1, Field2,...,FieldN from Table1 order by FieldM
Run Code Online (Sandbox Code Playgroud)

从文本文件(例如,每个数据表行的文本文件行)读取新数据.该表有一个主键,包含两个字段.对于文本文件的每一行,它通过这两个字段(即主键)定位必要的行.

query.Locate('Field1;Field2',VarArrayOf([Value1,Value2]),[]);
Run Code Online (Sandbox Code Playgroud)

如果Locate返回True,则编辑该行,否则添加新行.

因此,只要该表包含大约200000行,每个Locate操作都需要一定的时间...因此它设法每秒更新大约5-6行.

我应该考虑采取哪些措施来改善它?

可能通过单独的查询替换通过这个伟大的选择定位?

sql-server delphi performance ado delphi-7

6
推荐指数
2
解决办法
1478
查看次数

为什么不能从接口到类定义隐式转换运算符?

说,我有一个界面

public interface ISomeControl
{
    Control MyControl { get; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

是否可以像这样定义smth:

public static implicit operator Control(ISomeControl ctrl)
{
    return ctrl.MyControl;
}
Run Code Online (Sandbox Code Playgroud)

或者更确切地说,为什么我不能在C#中这样做?

c# interface implicit-conversion

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

如何传递可选参数

我有一个函数有两个固定的参数.但是下一个论点并不固定,可能有两个或三个或四个.

这是一个运行时参数,那么如何定义该函数呢?

我的代码看起来像:

public ObservableCollection<ERCErrors> ErrorCollectionWithValue
    (string ErrorDode, int MulCopyNo, dynamic arguments comming it should be 2 or 3)
        {

        return null;
    }
Run Code Online (Sandbox Code Playgroud)

c# optional-parameters

6
推荐指数
2
解决办法
2951
查看次数

如何检查泛型方法的类型T是否为IEnumerable <>并循环它?

我想做这样的事情

void DoSomething<T>(T param)
{
    if param is IEnumerable<?>
    {
        loop param and do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道在问号的位置做什么.它有可能吗?

c# generics

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

错误"成员名称不能与其封闭类型相同"

我需要打开一个FrmEscalacao,它将FrmAdmin的信息发送到FrmEscalacao,并带有一个名为"time"的字符串

这是FrmAdmin的代码

public partial class FrmAdmin : Form
{
    private string time;

    public FrmAdmin(string time)
    {
        InitializeComponent();

        this.time = time;
    }

    public void btnEscalar_Click(object sender, EventArgs e)
    {
        this.Hide();
        FrmEscalacao f1 = new FrmEscalacao();
        f1.ShowDialog();
    }
Run Code Online (Sandbox Code Playgroud)

}

这是FrmEscalacao的代码

public partial class FrmEscalacao : Form
{
    public string time;

        private void FrmEscalacao (string time)
        {

            InitializeComponent();

            this.time = time;

            SQLiteConnection ocon = new SQLiteConnection(Conexao.stringConexao);
            DataSet ds = new DataSet();
            ocon.Open();
            SQLiteDataAdapter da = new SQLiteDataAdapter();
            da.SelectCommand = new SQLiteCommand("Here is the …
Run Code Online (Sandbox Code Playgroud)

c#

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

List <T>和数组索引器之间有什么区别?

在我的脑海中提出的问题是否可以从List中访问结构的引用以进行更改?reza线程.

所以,请考虑以下structinterface(definetely不是非常有用,但只是为了显示这个问题):

public interface IChangeStruct
{
    int Value { get; }
    void Change(int value);
}

public struct MyStruct : IChangeStruct
{
    int value;

    public MyStruct(int _value)
    {
        value = _value;
    }

    public int Value
    {
        get
        {
            return value;
        }
    }

    public void Change(int value)
    {
        this.value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

MyStruct实现IChangeStruct,所以我们可以在堆中更改它的盒装副本,而不用拆箱并替换为新的.这可以通过以下代码演示:

MyStruct[] l1 = new MyStruct[]
{
    new MyStruct(0)
};

Console.WriteLine(l1[0].Value); //0
l1[0].Change(10);
Console.WriteLine(l1[0].Value); //10
Run Code Online (Sandbox Code Playgroud)

现在,让我们将数组更改为List<T>,即: …

c# arrays generics struct

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

防止在保存时删除带有空体的方法

我永远按下Ctrl + S是一个相当矛盾的习惯.否定的一面是delphi在保存时删除了空函数/过程.

有没有办法防止IDE在保存时删除空体的函数/过程?

ide delphi delphi-7

6
推荐指数
3
解决办法
886
查看次数

匿名类型列表?

我需要创建一对/三元组的东西并存储在某个地方.我该怎么做?

我试过了:

for (int i = 0; i < 100; i++)
{
    var item=new { a=i , b="lala" ,c=4.5m}; //anonymous type
}
Run Code Online (Sandbox Code Playgroud)

但后来我想:List<what>

我可以使用动态,但我想要Intellisense.

(我也可以使用,Tuple<int,string,decimal>但如果我已经拥有我需要的东西(=new { a=i , b="lala" ,c=4.5m};),我为什么要使用其他类型(元组)?)

这有什么解决方案吗?

.net c# anonymous-types

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

如何创建Nullable <T>的实例?

假设我们有两个类:

public class ParentEntity
{
    public ChildEntity Child { get; set; }
}

public class ChildEntity
{
    public byte? NullableValue { get; set; }
    public byte Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

任务是在linq表达式中表达以下代码:

parent.Child == null ? null : parent.Child.NullableValue
Run Code Online (Sandbox Code Playgroud)

为此,我尝试使用以下代码:

public static Expression GetCondition<TParent, TChild, TChildKey>(
                              Expression<Func<TParent, TChild>> pe, 
                              Expression<Func<TChild, TChildKey>> ce)
{
    var test = Expression.Equal(pe.Body, Expression.Constant(null));

    var ifTrue = Expression.Constant(Activator.CreateInstance<TChildKey>());
    var ifFalse = Expression.Property(pe.Body, 
                                      (ce.Body as MemberExpression).Member.Name);
    return Expression.Condition(test, ifTrue, ifFalse);
}
Run Code Online (Sandbox Code Playgroud)

运行此代码

Expression<Func<ParentEntity, ChildEntity>> pe = …
Run Code Online (Sandbox Code Playgroud)

c# linq generics reflection

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

为什么我会收到“未找到名称匹配”CertificateException?

据我了解,在大多数情况下,此异常表明证书所有者 CN(公用名)与 url 中的主机名不匹配。然而就我而言,它们确实匹配,但异常仍然出现。

远程服务器证书层次结构是:

  1. 自签名证书CN=sms.main.ru
  2. 由第一个签名的证书和CN=client.sms.main.ru

我的 java 客户端在 apache-tomcat 6 下启动并尝试连接https://client.sms.main.ru/并抛出以下异常:

No name matching client.sms.main.ru found
Run Code Online (Sandbox Code Playgroud)

这两个证书都添加到$JAVA_HOME/jre/lib/security/cacertsvia中,如unixtippse 的答案中的How do you configure Apache/Tomcat to trust服务器到服务器 https 请求的内部证书颁发机构$JAVA_HOME/bin/keytool所示。

Java 代码非常简单:

URL url = new URL(strurl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Connection", "close");
con.setDoOutput(true);
con.connect();
Run Code Online (Sandbox Code Playgroud)

我缺少什么?


有趣的是,当我尝试在 Windows PC 上使用浏览器访问此 url 时,它说该证书不受信任,我将其添加到浏览器例外列表中,并且工作正常。所以看起来我cacerts错误地添加了这些证书,因此 java 无法使用它们。但我可以通过别名或 CN 轻松找到它们:

$JAVA_HOME/bin/keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts | less
Run Code Online (Sandbox Code Playgroud)

java apache https tomcat solaris

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