我有一个类似于以下的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
.
如何反序列化根节点中的数组?
我正在尝试查找包含大写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
克劳斯的模式匹配.
如何执行区分大小写的搜索?
我有一个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) 我正在迁移一个用于从.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)
解决此问题的最佳方法是什么?
如何使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 8或9来呈现此页面.
在VB.Net中,我可以使用以下命令检索我的应用程序的ProductName和CompanyName:
My.Application.Info.ProductName
My.Application.Info.CompanyName
Run Code Online (Sandbox Code Playgroud)
我如何在C#中做同样的事情?
我想用逗号分隔的参数调用批处理文件.我怎么能做到这一点?
我希望它像这个例子.
我有一个带脚本的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)
知道我怎么能做到这一点?
谢谢.
我在程序使用的本地文件中有一个数据库.该程序功能有限,我需要运行一些快速查询.我安装了SQL Server Management Studio Express 2005(SSMSE),连接到SQL Server实例,附加了数据库文件,并运行了查询.现在原始程序将不再连接到数据库.我收到错误:
无法打开用户默认数据库.登录失败.用户'MyComputer\MyUserName'登录失败.
我已经回到SSMSE并尝试设置默认数据库.我打开了Security,Logins,BUILTIN\Administrators和BUILTIN\Users.在General下,我已将默认数据库设置为程序的数据库.在User Mappings下,我确保勾选了数据库,并勾选了db_datareader和db_datawriter.
该程序使用连接字符串:
服务器=(本地)\实例; AttachDbFilename = C:\ PathToDatabase\Database.mdf; 综合安全=真; 用户实例=真;
我知道关于数据库管理的杰克.我还缺少什么?
database sql-server database-connection database-administration sql-server-express
我正在尝试使用 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 中构建良好。我花了一天多的时间打猎,找不到关于这个问题的任何信息。
我的代码类似于以下内容.
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# ×4
.net ×2
batch-file ×2
.net-1.1 ×1
arrays ×1
assemblyinfo ×1
azure-devops ×1
build ×1
collate ×1
css ×1
database ×1
git ×1
git-stash ×1
html ×1
random ×1
scope ×1
sql-like ×1
sql-server ×1
sqlproj ×1
stylesheet ×1
using ×1
vb.net ×1