对于兼容性级别问题,我无法使用 string_split 函数。我知道如何更改兼容性级别。但对于数据库的快速发展来说,如果旧功能失效就会存在一定的风险。
现在,兼容级别 110 中是否有 string_split 函数的替代方案?
或者如果我想定义它,函数会是什么?
我尝试以异步方式从串行端口读取数据,请记住操作所花费的时间不得超过指定的时间段。我使用的代码:
private async Task<int> Read(byte[] buffer, int offset, int length)
{
Console.WriteLine("Reading response to buffer of size {0}, offset {1}, max to cnt {2}", buffer.Length, offset, length);
int totalBytesRead = 0;
Console.WriteLine("Begin reading...");
while (true)
{
Console.WriteLine("Re-entering read");
int bytesRead = 0;
using (CancellationTokenSource cts = new CancellationTokenSource(new TimeSpan(0, 0, 0, 0, 333))) // 333 ms
{
Console.WriteLine("Waiting for read to complete...");
int tmpOffset = offset + totalBytesRead;
int tmpLength = length - totalBytesRead;
Console.WriteLine("tmpOffset: {0}, tmpLength: {1}", tmpOffset, tmpLength); …Run Code Online (Sandbox Code Playgroud) 每当我生成自动实现的属性时,我在 C# 自动实现“NotImplementedException”时遇到问题。
这是接口类:
public interface IPerson
{
string Name {get;set;}
int Age {get; set;}
char Gender {get; set;}
string Email {get;set;}
string Address {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
这是派生类。每当我尝试实现派生类的接口时,它都会自动实现“NotImplementedException”方法。
public class Student : IPerson
{
public Student()
{
}
public string Name { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public int Age { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public char Gender { get => throw new NotImplementedException(); set => throw new …Run Code Online (Sandbox Code Playgroud) enum Season { spring, summer, fall, winter }
int a = (int)Season.spring;
Run Code Online (Sandbox Code Playgroud)
这是拆箱还是普通的铸造?如果这是拆箱,您能解释一下原因吗?我认为这只是一个正常的转换,因为“enum”和“int”都是值类型数据。
请考虑这个简单的代码:
private async void button3_Click(object sender, EventArgs e)
{
textBox1.Text = "It begins...";
await DoAsync_Button3();
}
private async Task DoAsync_Button3()
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.stackoverflow.com/");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
textBox1.Text = responseBody;
}
Run Code Online (Sandbox Code Playgroud)
和简单的用户界面:
问题是对于某些网站我得到了一些奇怪的结果。例如:https: //www.dotnetperls.com/
我得到这个结果:
我得到了奇怪的结果,而StatusCode200。我如何确定问题出在哪里?谢谢
Sort运算符表示只有 100 行需要排序。这怎么可能比读取 190 万行更昂贵呢?我一定是读错了或者误解了某些东西。
另外,排序运算符中每次执行的估计行数为何只有 100?如果Index Seek运算符估计每次执行的行数为 190 万行,那么如何仅将 100 行传送到 Sort 运算符呢?
这是查询:
DECLARE @PageIndex INT = 1000;
DECLARE @PageCount INT = 1000;
SELECT ID
FROM dbo.Table1
WHERE DateCreated >= '2021-10-27'
AND
DateCreated < '2021-10-28'
ORDER BY ID
OFFSET @PageIndex * @PageCount ROWS FETCH NEXT @PageCount ROWS ONLY
Run Code Online (Sandbox Code Playgroud) 我目前正在编写一份小报告,我必须创建目标百分比的数字,但是我编写的查询似乎显示了错误的百分比计算,我不完全确定为什么。查询已删除所有敏感信息;
SELECT YearMonth
, Code
, COUNT(*) AS Total
, (COUNT(*) / 100 * 2) AS 'Q1 Target'
, (COUNT(*) / 100 * 3) AS 'Q2 Target'
, (COUNT(*) / 100 * 4) AS 'Q3 Target'
, (COUNT(*) / 100 * 5) AS 'Q4 Target'
FROM xxx
LEFT JOIN Calendar AS C ON Date = xxx
WHERE code IN (xxx)
and xxx BETWEEN '20220301' AND '20220331'
GROUP BY YearMonth, code
Run Code Online (Sandbox Code Playgroud)
返回的结果是;
正如您所看到的,第一行总共有 611 个,其中 2% 是 12 个,这是正确的。但是,如果您查看第 3 行,您可以看到总数为 …
每个用户都有每日信用额度。
如果用户超出每日限制,HTTP 状态代码将显示在此处。
403 -禁止或 200 -成功(带有验证结果)
c# rest http-status-codes http-status-code-403 http-status-code-429
我正在开发一组相当复杂的接口,它允许定义具有特定结构的对象。通过接口和泛型,它还允许我定义每个元素中可用的接口组合。该结构映射了我们背景中的某些内容,因此目标是在代码中重新创建结构,以便更好地理解代码实际操作的内容。
结果如下:
static void Main(string[] args)
{
IComplexDefinition1 CD1 = null;
CD1.Access.Level1.ElementB.SomeStructrueMethod();
CD1.Access.Level1.ElementC.ActorAMethod1();
CD1.Access.Level1.ElementC.ActorBMethod2();
CD1.Access.Level1.ElementC.ActorCMethod1();
CD1.Access.Level2.ElementA.SomeOperationPoolMethod();
CD1.Access.Level2.ElementC.ActorAMethod2();
CD1.Access.Level2.ElementC.ActorBMethod1();
CD1.Access.Level2.ElementC.ActorCMethod2();
}
Run Code Online (Sandbox Code Playgroud)
现在,在实现具体类时,我在 Visual Studio 中单击了“自动实现”,它出现了一行我到目前为止还没有看到的代码(并且没想到会发生这种情况)。因此,我正在寻找它的工作原理以及我可以在哪里阅读/研究更多相关信息的见解。
具体实现的相关部分是:
public class ComplexDefinition : IComplexDefinition1,....
{
protected IActorComposition _actors;
protected SomeStructure _structure;
protected SomeOperationPool _operationPool;
public IElementsBC<IActorCompositionLevel2, SomeStructure> Level1 => this;
public IElementsAC<IActorCompositionLevel1, SomeOperationPool> Level2 => this;
public SomeStructure ElementB => _structure;
public SomeOperationPool ElementA => _operationPool;
public IActorCompositionLevel2 ElementC => _actors;
IActorCompositionLevel1 IElementC<IActorCompositionLevel1>.ElementC => _actors;
}
Run Code Online (Sandbox Code Playgroud)
尤其是这两行让我感到困扰(尤其是最后一行):
public IActorCompositionLevel2 ElementC => _actors;
IActorCompositionLevel1 IElementC<IActorCompositionLevel1>.ElementC …Run Code Online (Sandbox Code Playgroud) 我正在使用 SQL Server Standard(64 位)14.0.1000.169 在 QA 服务器上使用屏蔽数据库。这是我的结构:
CREATE TABLE [dbo].[Test](
[Column1] [VARCHAR(64)] NULL,
[Column2] [VARCHAR(64)] NULL
)
GO
INSERT INTO [dbo].[Test]
VALUES ('ABCDEFG', 'HIJKLMN')
Run Code Online (Sandbox Code Playgroud)
我用以下代码屏蔽了该列:
ALTER TABLE [dbo].[Test]
ALTER COLUMN [Column1] VARCHAR(64) MASKED WITH (FUNCTION = 'default()');
Run Code Online (Sandbox Code Playgroud)
当我使用非允许的用户执行以下查询时,它按预期工作:
SELECT [Column1], [Column2]
FROM [dbo].[Test]
FOR JSON PATH
-- RESULT: '[{"Column1":"xxxx", "Column2":"HIJKLMN"}]'
Run Code Online (Sandbox Code Playgroud)
但当同一个非允许用户将结果保存在变量中时(主要目标),它不起作用:
DECLARE @var VARCHAR(64)
SET @var = (SELECT [Column1], [Column2] FROM [dbo].[Test] FOR JSON PATH)
SELECT @var --it should show a valid JSON...
-- RESULT: 'xxxx' <-- JSON LOSES …Run Code Online (Sandbox Code Playgroud) c# ×6
sql-server ×4
t-sql ×3
boxing ×1
compression ×1
enums ×1
for-json ×1
for-xml-path ×1
httpclient ×1
interface ×1
rest ×1
serial-port ×1
split ×1
sql ×1
unboxing ×1