小编Han*_*ood的帖子

在根元素中使用XmlSerializer和数组

我有一个类似于以下的XML文档:

<scan_details>
    <object name="C:\Users\MyUser\Documents\Target1.doc">
        ...
    </object>
    <object name="C:\Users\MyUser\Documents\Target2.doc">
        ...
    </object>
    ...
</scan_details>
Run Code Online (Sandbox Code Playgroud)

我希望使用这些System.Xml.Serialization属性来简化XML反序列化.我遇到的问题是我无法弄清楚如何指定根节点包含一个数组.

我尝试过创建以下类:

[XmlRoot("scan_details")]
public class ScanDetails
{
    [XmlArray("object")]
    public ScanDetail[] Items { get; set; }
}

public class ScanDetail
{
    [XmlAttribute("name")]
    public string Filename { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我将XML反序列化为ScanDetails对象时,Items数组仍然存在null.

如何反序列化根节点中的数组?

.net c# arrays xml-serialization

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

如何使用LIKE执行区分大小写的搜索?

我正在尝试查找包含大写6个或更多字母数字字符串的记录.一些例子:

PENDING  3RDPARTY  CODE27
Run Code Online (Sandbox Code Playgroud)

我正在使用以下声明:

SELECT Details
FROM MyTable
WHERE Details LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
Run Code Online (Sandbox Code Playgroud)

这将返回包含任何6个或更多字母单词的所有记录,无论大小写如何.

我添加了一个COLLATE声明:

SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
Run Code Online (Sandbox Code Playgroud)

这没有任何改变.无论如何,它仍会返回带有6个或更多字母单词的记录.

就像测试一样,我试过:

SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%pending%';

SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%PENDING%';
Run Code Online (Sandbox Code Playgroud)

这两种方法都有效,分别返回包含"待定"和"待定"的记录.所以问题似乎是LIKE克劳斯的模式匹配.

如何执行区分大小写的搜索?

pattern-matching collate sql-server-2008 sql-like

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

检查"git stash"是否藏匿了什么

我有一个Windows Command脚本,旨在将dev分支合并到项目分支中.它首先读取当前分支名称,存储更改,获取和合并开发和项目分支,然后切换回原始分支并弹出存储.

问题是存储可能没有任何变化.这使得先前的存储位于堆栈的顶部.当它到达脚本的末尾并弹出存储时,它会弹出与当前分支无关的上一个存储.

Set SourceBranch=dev
Set ProjectBranch=project

:: Stash current changes.
For /F "tokens=1,2" %%a In ('Git branch -q') Do If "%%a"=="*" Set CurrentBranch=%%b
Git stash save -u

:: Pull latest source branch.
Git checkout %SourceBranch%
Git pull
For /F "tokens=1,3" %%a In ('Git branch -q -v') Do If "%%a"=="*" Set MergeHash=%%b

:: Merge source into project branch.
Git checkout %ProjectBranch%
Git pull
Git merge --commit %MergeHash%||Exit 1

:: Return to original branch.
Git checkout %CurrentBranch%
Git stash …
Run Code Online (Sandbox Code Playgroud)

git batch-file git-stash

27
推荐指数
3
解决办法
8678
查看次数

实现更改为.NET的Random()

我正在迁移一个用于从.NET Framework 1.1解码到.NET Framework 4的方法.我注意到Random的实现已更改.因此,给定相同的种子,Random.NextBytes返回不同的结果.

所以,如果我运行以下代码.

byte[] bytes = new byte[4];
System.Random random = new System.Random(50);
random.NextBytes(bytes);

for(int i=0; i< bytes.Length; i++)
{
  Console.WriteLine("bytes[" + i + "] = " + bytes[i]);
}
Run Code Online (Sandbox Code Playgroud)

在.NET Framework 1.1下,它返回:

bytes[0] = 216
bytes[1] = 124
bytes[2] = 183
bytes[3] =  58
Run Code Online (Sandbox Code Playgroud)

在.NET framework 4下,它返回:

bytes[0] = 154
bytes[1] =  49
bytes[2] = 183
bytes[3] =  48
Run Code Online (Sandbox Code Playgroud)

解决此问题的最佳方法是什么?

.net c# random .net-1.1

16
推荐指数
2
解决办法
1767
查看次数

使表填满整个窗口

如何使HTML表格水平和垂直填充整个浏览器窗口?

该页面只是一个标题和一个应该填满整个窗口的分数.(我意识到固定的字体大小是一个单独的问题.)

<table style="width: 100%; height: 100%;">
    <tr style="height: 25%; font-size: 180px;">
        <td>Region</td>
    </tr>
    <tr style="height: 75%; font-size: 540px;">
        <td>100.00%</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

当我使用上面的代码时,表格宽度是正确的,但高度会缩小以适合两行文本.

我很可能被迫使用Internet Explorer 89来呈现此页面.

html css internet-explorer stylesheet

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

C#中的ProductName和CompanyName

在VB.Net中,我可以使用以下命令检索我的应用程序的ProductName和CompanyName:

My.Application.Info.ProductName
My.Application.Info.CompanyName
Run Code Online (Sandbox Code Playgroud)

我如何在C#中做同样的事情?

c# vb.net assemblyinfo

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

如何使用逗号分隔符调用批处理文件中的参数

我想用逗号分隔的参数调用批处理文件.我怎么能做到这一点?

我希望它像这个例子.

我有一个带脚本的text.bat:

@echo off
set test=%1
echo Sample %test% batch.
Run Code Online (Sandbox Code Playgroud)

我想像这样运行批处理:

c:\text.bat this,is,sample
Run Code Online (Sandbox Code Playgroud)

我期待这样的结果:

Sample this,is,sample batch.
Run Code Online (Sandbox Code Playgroud)

知道我怎么能做到这一点?

谢谢.

batch-file

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

"无法打开用户默认数据库.登录失败." 安装SQL Server Management Studio Express后

我在程序使用的本地文件中有一个数据库.该程序功能有限,我需要运行一些快速查询.我安装了SQL Server Management Studio Express 2005(SSMSE),连接到SQL Server实例,附加了数据库文件,并运行了查询.现在原始程序将不再连接到数据库.我收到错误:

无法打开用户默认数据库.登录失败.用户'MyComputer\MyUserName'登录失败.

我已经回到SSMSE并尝试设置默认数据库.我打开了Security,Logins,BUILTIN\AdministratorsBUILTIN\Users.在General下,我已将默认数据库设置为程序的数据库.在User Mappings下,我确保勾选了数据库,并勾选了db_datareaderdb_datawriter.

该程序使用连接字符串:

服务器=(本地)\实例; AttachDbFilename = C:\ PathToDatabase\Database.mdf; 综合安全=真; 用户实例=真;

我知道关于数据库管理的杰克.我还缺少什么?

database sql-server database-connection database-administration sql-server-express

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

在 Azure DevOps 上构建 sqlproj

我正在尝试使用 Azure DevOps Pipelines 从 GitHub 构建我的 .NET Core 2.1 解决方案。它包含一个 SQL 项目,其 TargetFrameworkVersion 为v4.6.2. 这个项目总是无法构建。

Build FAILED.

/home/vsts/work/1/s/MySolution/MyDatabase/MyDatabase.sqlproj : warning NU1503: Skipping restore for project '/home/vsts/work/1/s/MySolution/MyDatabase/MyDatabase.sqlproj'. The project file may be invalid or missing targets required for restore. [/home/vsts/work/1/s/MySolution/MySolution.sln]
/home/vsts/work/1/s/MySolution/MyDatabase/MyDatabase.sqlproj(57,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/2.1.403/Microsoft/VisualStudio/v15.0/SSDT/Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
1 Warning(s)
1 Error(s)
Run Code Online (Sandbox Code Playgroud)

如何为构建服务器引用或包含这些目标?它在 VS2017 中构建良好。我花了一天多的时间打猎,找不到关于这个问题的任何信息。

build sqlproj azure-devops azure-pipelines

11
推荐指数
1
解决办法
3985
查看次数

在类级变量上使用using语句是不好的做法吗?

我的代码类似于以下内容.

class MyController
{
    [ThreadStatic] private DbInterface db;

    public void ImportAllData()
    {
        using (db = new DbInterface())
        {
            var records = PullData();
            PushData(records);
        }
    }

    private DbRecord[] PullData()
    {
        return db.GetFromTableA();
    }

    private void PushData(DbRecord[] records)
    {
        db.InsertIntoTableB(records);
    }
}
Run Code Online (Sandbox Code Playgroud)

另一种选择是维护起来更麻烦.

class MyController
{
    public void ImportAllData()
    {
        using (var db = new DbInterface())
        {
            var records = PullData(db);
            PushData(records, db);
        }
    }

    private DbRecord[] PullData(DbInterface db)
    {
        return db.GetFromTableA();
    }

    private void PushData(DbRecord[] records, DbInterface db)
    {
        db.InsertIntoTableB(records);
    } …
Run Code Online (Sandbox Code Playgroud)

c# scope using

9
推荐指数
2
解决办法
1637
查看次数