小编Art*_*mix的帖子

全外连接,在2个数据表上,带有列列表

我有2个数据表,我不知道他们的数据列表.必须在运行时提取此列表,并将其用于完整外部联接.

使用这些列时,需要合并两个表之间的列,并且我需要显示所有数据.

直到现在我正在做的是

  1. 使用intersect获取公共列,并实现IEqualityComparer
  2. 使用这些列创建一个新的数据表,以便将2个数据表合并到此新表中

但是,我在第二步遇到了Linq的问题.

直到现在我有:

获取常见列


    // Get common columns
    var commonColumns = dt1.Columns.OfType().Intersect(dt2.Columns.OfType(), new DataColumnComparer());

创建新数据表


    // Create the result which is going to be sent to the user
    DataTable result = new DataTable();

    // Add all the columns from both tables
    result.Columns.AddRange(
    dt1.Columns.OfType()
    .Union(dt2.Columns.OfType(), new DataColumnComparer())
    .Select(c => new DataColumn(c.Caption, c.DataType, c.Expression, c.ColumnMapping)).ToArray());

如何从运行时提取的数据列表中动态获取有效的全外连接?

.net c# linq ado.net

8
推荐指数
1
解决办法
3523
查看次数

A Double(Java)中的小数位数

在java中是否有任何内置函数告诉我double中有多少小数位.例如:

101.13 = 2
101.130 = 3
1.100 = 3
1.1 = 1
-3.2322 = 4 etc.
Run Code Online (Sandbox Code Playgroud)

如果需要,我很乐意首先转换为另一种类型,我已经考虑过转换为bigdecimal而没有运气.

java rounding

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

PHP上传 - 为什么isset($ _ POST ['submit'])始终为FALSE

我有以下代码示例upload3.php:

<html>
<head>
<title>PHP Form Upload</title>
</head>
<body>

<form method='post' action='upload3.php' enctype='multipart/form-data'>
    Select a File:
    <input type='file' name='filename' size='10' />
    <input type='submit' value='Upload' />
</form>

<?php

if (isset($_POST['submit']))
{
    echo "isset submit";
}
else 
{
    echo "NOT isset submit";
}

?>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

代码始终返回"NOT isset submit".为什么会这样?因为相同的脚本upload3.php调用自己?

php

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

Levenshtein距离:从矩阵推断编辑操作

我在C++中编写了Levenshtein算法

如果我输入:
string s:democrat
string t:republican

我得到矩阵D填充,并且可以在D [10] [8] = 8中读取操作数(Levenshtein距离).
在填充矩阵之外,我想构建最优解.怎么看这个解决方案?我没有主意.
请只写我如何看这个例子.

algorithm levenshtein-distance

7
推荐指数
2
解决办法
7627
查看次数

SQL Azure Service Broker将来会在SQL Azure中得到支持吗?

我发现SQL Azure不支持SQL Server Service Broker.Service Broker是我们的事件通知需求的一个非常有吸引力的选择.但在承诺之前,我想确保它将来会得到微软的支持.SQL Azure不支持Service Broker这一事实让我很担心.这是退休服务经纪人的第一步吗?我们计划将来将应用程序迁移到Azure,并且我试图弄清楚Microsoft是否会在SQL Azure的未来版本中支持Service Broker.我尝试了很多谷歌搜索,但我没有得到明确的答案.是否有人知道为什么微软不支持SQL Azure上的Service Broker以及它将来是否会支持?

谢谢,Sathish

sql-server service-broker sql-server-2008 azure-sql-database

7
推荐指数
1
解决办法
2484
查看次数

cloudfoundry上的PostgreSQL抛出PSQLException:FATAL:由于管理员命令而终止连接

我有一个grails应用程序成功运行在cloudfoundry中,H2作为数据库.我现在想切换到postgresql.当我在本地针对postgreSQL运行应用程序时,一切都按预期工作.

在cloudfoundry实例上,我在一个相当长时间运行的分析中得到一个异常,我作为后台任务执行(使用grails executor插件).在这个异步任务中

def future = executorService.submit({
    return analysisService.analyzeProject(model, project)
})
Run Code Online (Sandbox Code Playgroud)

我从数据库中获得以下异常:

2012-11-26 10:27:38,319 [pool-2-thread-1] ERROR interceptor.TransactionInterceptor  - Application exception overridden by rollback exception
org.springframework.dao.DataAccessResourceFailureException: Hibernate operation: could not execute query; SQL [select this_.id as id8_0_, this_.version as version8_0_, this_.language as language8_0_, this_.url as url8_0_ from sonar_adapter_configuration this_]; FATAL: terminating connection due to administrator command; nested exception is org.postgresql.util.PSQLException: FATAL: terminating connection due to administrator command
    at myapp.adapters.sonar.SonarAdapterService.loadSonarConfig(SonarAdapterService.groovy:184)
    at myapp.adapters.sonar.SonarAdapterService.determineArtefactSizes(SonarAdapterService.groovy:145)
    at myapp.project.AnalysisService.analyzeProject(AnalysisService.groovy:46)
    at myapp.project.ProjectController$_analyzeProject_closure2.doCall(ProjectController.groovy:69)
    at grails.plugin.executor.PersistenceContextRunnableWrapper$_run_closure1.doCall(PersistenceContextRunnableWrapper.groovy:34)
    at grails.plugin.executor.PersistenceContextWrapper.wrap(PersistenceContextWrapper.groovy:35)
    at grails.plugin.executor.PersistenceContextRunnableWrapper.run(PersistenceContextRunnableWrapper.groovy:34) …
Run Code Online (Sandbox Code Playgroud)

postgresql grails cloud-foundry

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

如何将Angular.js与Pusher或PubNub等实时消息服务集成?

是否可以将Pusher或PubNub定义为Angular服务?有人有这种集成的代码示例吗?

javascript pusher angularjs pubnub

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

累积在SQL中

我有一个查询结果,如ID,值.我想要的是按照其ID的顺序获取值,并计算另一列中的累计值.看看我的简化代码:

declare @TempTable Table
(
    ID int,
    Value int
)
insert into @TempTable values
(1, 10),
(2, -15),
(3, 12),
(4, 18),
(5, 5)

select t1.ID, t1.Value, SUM(t2.Value) AccValue from @TempTable t1
inner join @TempTable t2 on t1.ID >= t2.ID
group by t1.ID, t1.Value
order by t1.ID




Result:
ID  Value   AccValue
1   10      10
2   -15     -5
3   12      7
4   18      25
5   5       30
Run Code Online (Sandbox Code Playgroud)

我想出的是,为了这个目的,在结果和它自身之间使用内连接.但对于大量数据,这显然是一个低性能问题.

还有其他选择吗?

sql sql-server running-total

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

在C#中对字符串进行排序

我有一个需要分类的分隔字符串.首先,我需要检查'Francais'是否在字符串中,如果是,它首先出现,然后'Anglais'是下一个,如果存在的话.之后,其他一切都按字母顺序排列.谁能帮我?这是我到目前为止所没有的排序

private string SortFrench(string langs)
    {
       string _frenchLangs = String.Empty;
       string retval = String.Empty;

        _frenchLangs = string.Join(" ; ",langs.Split(';').Select(s => s.Trim()).ToArray());

        if (_frenchLangs.Contains("Francais"))
            retval += "Francais";

        if (_frenchLangs.Contains("Anglais"))
        {
            if (retval.Length > 0)
                retval += " ; ";

            retval += "Anglais";
        }

        //sort the rest

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

c# sorting

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

如何使用FromBase64String创建长度为16的byte []

我需要创建一个byte[]长度为16.(一个字节数组,有128位用作AES加密中的密钥).

以下是有效的字符串

"AAECAwQFBgcICQoLDA0ODw=="
Run Code Online (Sandbox Code Playgroud)

确定字符串是否为128位的算法是什么?或者是反复试验是创建这种128位字符串的唯一方法吗?

    static void Main(string[] args)
    {
        string firstString = "AAECAwQFBgcICQoLDA0ODw=="; //String Length = 24
        string secondString = "ABCDEFGHIJKLMNOPQRSTUVWX"; //String Length = 24
        int test = secondString.Length;

        byte[] firstByteArray = Convert.FromBase64String((firstString));
        byte[] secondByteArray = Convert.FromBase64String((secondString));

        int firstLength = firstByteArray.Length;
        int secondLength = secondByteArray.Length;


        Console.WriteLine("First Length: " + firstLength.ToString());
        Console.WriteLine("Second Length: " + secondLength.ToString());

        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

调查结果:

对于256位,我们需要256/6 = 42.66个字符.这四舍五入到43个字符.[使其可被4整除=]

对于512位,我们需要512/6 = 85.33个字符.这是四舍五入到86 char.[使其可被4整除==]

对于128位,我们需要128/6 = 21.33个字符.这被舍入到22个字符.[使其可被4整除==]

.net c# encryption base64 cryptography

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