小编Dim*_*Dim的帖子

使用join进行更新

我正在尝试进行更新,这是我的查询

UPDATE t1
SET DOY = isnull(Sum(t2.Price),0)- isnull(Sum(t2.RestOfPrice),0) 
FROM customermaster t1 INNER JOIN History t2 
     ON t1.CustomerID = t2.CustomerID
Run Code Online (Sandbox Code Playgroud)

该查询抛出错误

聚合可能不会出现在UPDATE语句的集合列表中.

sql sql-server sql-server-2008

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

在“第一个”空格字符之前和之后获取字符串

我在字符串中有一个大单词。例如白葡萄酒额外优惠。

我想在第一行选择“White”,在第二行选择“wine extra Offer”。使用下面的代码:

string value="White wine extra offer";
value = value.Split(' ').FirstOrDefault() + ' ' + Environment.NewLine + value.Split(' ').LastOrDefault();
Run Code Online (Sandbox Code Playgroud)

我正在输出白色/r 报价。我在最后一个空格之后取这个词,在第一个空格之后不取这个词。

c#

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

如果string isnull或Empty返回字符串

我知道如何检查字符串是否为NullOrWhiteSpace.但我想让我的代码更短.如果我的字符串为null或为空,则返回一个值.

直到现在我用这个:

string Foo=textbox1.Text;
if(string.IsNullOrWhiteSpace(textbox1.Text);
  textbox1.Text="UserName";
Run Code Online (Sandbox Code Playgroud)

这可以使用一行代码返回此结果吗?

string Foo=textbox1.Text ?? "UserName";
Run Code Online (Sandbox Code Playgroud)

在这个例子中它返回我""; 所以它认为我的文本框不是空的,它不会返回我想要的结果.我的案子有任何可行的例子吗?

c#

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

任务 vs 线程 vs 后台工作者的终生方法

我对这一切都有些困惑。我需要在我的应用程序中创建一个生命周期方法,它将与 asp net web 服务进行通信,并返回一些结果。只要我的应用程序在运行,这个方法就永远不会停止。

方法 1 创建任务。

 t=Task.Run(()=>ffAsync());

 async void ffAsync()
 {
    while (true)
    {
      await Task.Delay(5000);
      Console.WriteLine("Reading from server every 5 seconds");
    }
 }
Run Code Online (Sandbox Code Playgroud)

Method2 使用后台工作者

Timer t = new Timer();   
t.Interval = 5000;    
timer1.Enabled = true;  
timer1.Tick += new 
System.EventHandler(OnTimerEvent);

private void OnTimerEvent(object sender, EventArgs e) 
{
 backgroundWorker1.RunWorkerAsync();
}
Run Code Online (Sandbox Code Playgroud)

方法 3 使用线程

new Thread(() =>
{
   Thread.CurrentThread.IsBackground = true;
   while(true)
   {
      Thread.Sleep(5000);
      Console.WriteLine("Run every 5 seconds");
   }
 }).Start();
Run Code Online (Sandbox Code Playgroud)

在我的情况下哪种方法更有效?还有另一个优化问题,最好使用 task.delay(x),Thread.Sleep(x) 每 x 秒运行一次我的循环,还是创建一个计时器(如我的秒示例),它会每 x 触发一次我的事件秒?

c# multithreading task backgroundworker

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

用于在SQL Server中插入新数据的Post或Put方法?

我是ASP.NET新手,我想问一下哪种方法更适合在SQL Server中插入新行.

我想避免的最大问题是将数据双重插入SQL Server.也许对于某些网络延迟,我会在客户端的应用程序中出现服务器错误,但服务器已收到我的数据并将其插入SQL Server.当我重试时,它将重新插入它们.

post或put方法可以避免这种情况吗?或者我需要创建自己的机制?

public void Post([FromBody]string value)
{
}

// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
Run Code Online (Sandbox Code Playgroud)

还有最后一个问题,我可以在同一个控制器中创建两个post方法,还是我必须创建一个新方法?

对不起,如果问题看起来很容易,但正如我所说,我是asp.net的新手.谢谢

c# asp.net asp.net-web-api

0
推荐指数
1
解决办法
1373
查看次数