小编Hen*_*man的帖子

管理SQL表中位置的算法

我有一个小疑问,如何管理以下情况.在数据库表中,我将相关数据保存在不同的列中,最后我将精确的顺序保存在名为position的列中.此表绑定到网格.现在我正在实现将更改行的位置的功能,但我还需要更新数据库.我问的是什么是最佳实践或最方便的方法来实现这一目标?

建议是值得欢迎的.

姓名职位

abc 1

def 2

ghj 3

现在我点击按钮,我得到以下内容

姓名职位

def 1

abc 2

ghj 3

我希望我已经解释过了自己!

根据评论,这是一个真实的例子:

具有3列ID1,ID2,POSITION
ID1和ID2的TABLE1 是FK,并且该表具有基于ID1和ID2的PK
当我选择要显示的数据时,我使用以下查询SELECT NAME,ETC FROM TABLE2 INNER JOIN TABLE1 ON ID1 = ID1 ID2 = 511按位置排序

现在我需要改变位置上的两个元素,因此该行中TABLE1例如311,511,5需要成为311,511,4,那是433,511,4需要该行成为433,511,5.相反的.

我希望这有助于澄清我的问题.

干杯!

c# sql algorithm

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

DataGrid找不到方法DataSource

我正在尝试构建一个DataGrid-不是DataGridView,因为它似乎在Visual Studio 2010中不可用。

我想动态添加行(我想我可以做到),但是为了显示结果,我需要将数据分配给DataGrid,所有示例都说我应该使用DataSource,但Visual Studio坚持认为这不可用。为了编码,我发现其他地方是这样的。

private void BindToDataView(System.Windows.Controls.DataGrid myGrid)
{
    // Create a DataView using the DataTable.
    DataTable myTable = new DataTable("Suppliers");
    // Insert code to create and populate columns.
    DataView myDataView = new DataView(myTable);
    myGrid.DataSource = myDataView;
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c# wpf datagrid datasource

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

在Paint事件处理程序中处理图形元素

我正在使用C#,.net 3.5和Visual Studio 2008.

在阅读了一些关于何时必须处理元素的内容后,我有点困惑.以下Paint事件处理程序是否可以,或者它是内存泄漏?

private void ProgressBar_Paint(object sender, PaintEventArgs e) {
        Graphics graphics = e.Graphics;
        string rightText = "rightext";
        string leftText = "lefttext";;
        string textToDraw = rightText + leftText;
        graphics.DrawString(textToDraw, progressBar.Font, 
             new SolidBrush(progressBar.ForeColor), 10, 30);                         
    }
Run Code Online (Sandbox Code Playgroud)

这会好吗?

private void ProgressBar_Paint(object sender, PaintEventArgs e) {
        Graphics graphics = e.Graphics;
        string rightText = "rightext";
        string leftText = "lefttext";;
        string textToDraw = rightText + leftText;
        using (SolidBrush solidBrush = new SolidBrush(progressBar.ForeColor)) {
            graphics.DrawString(textToDraw, progressBar.Font, solidBrush, 18, 20);
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# gdi+ dispose winforms

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

Azure云服务

我们正在使用azure云服务来发布我们的应用程序.对于重大更改,我们将通过创建和上传包进行发布,但是对于较小的更改,我们通过使用远程计算机将相应的dll移动到实例.

我们将dll移动到站点根目录下的文件夹中.

我们的问题是,两天前我们注意到通过增量(即通过复制dll)所做的更改已经丢失,我们保存在桌面上的文件夹也丢失了.

azure azure-cloud-services

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

从工作线程更新ViewModel会引发跨线程问题

最近,我一直在进行类型绑定的测试,该绑定实现INotifyPropertyChanged了工作线程抛出跨线程问题并更新了属性。

这是示例代码:

public class MyViewModel : INotifyPropertyChanged
    {
        private string _name;

        public string Name
        {
            get { return _name; }
            set
            {
                if (_name != value)
                {
                    _name = value;
                    OnPropertyChanged("Name");
                }
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        protected virtual void OnPropertyChanged(string propertyName)
        {

            PropertyChangedEventHandler hanlder = PropertyChanged;
           if(hanlder != null)
                hanlder(this, new PropertyChangedEventArgs(propertyName));

        }
    }
Run Code Online (Sandbox Code Playgroud)

上面的viewmodel已与Windows窗体中的标签文本绑定,并从工作线程更新标签值。

从辅助线程更新label1文本会导致跨线程问题:

public partial class MainForm : Form
{
    private MyViewModel _myViewModel = new MyViewModel();
    public MainForm()
    {
        InitializeComponent();
        Btn1.Click += Btn1_Click; …
Run Code Online (Sandbox Code Playgroud)

c# task worker-thread winforms c#-4.0

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

检查两个双打是否有相同符号的快速方法?

有没有快速检查两个双打是否有相同符号的方法?假设两个双打不能为0.

c# algorithm performance

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

嵌套循环的大 O 表示法

我正在尝试找到此代码的时间复杂度。

for (int i = 0; i <= n - 1; i++)
  for (int j = i + 1; j <= n - 1; j++)
    for (int k = j + 1; k <= n - 1; k++)
Run Code Online (Sandbox Code Playgroud)

我的尝试:我们可以将这个循环写成以下形式:

for (int i = 1; i <= n; i++)
  for (int j = 1; j <= n; j++)
    for (int k = 1; k <= n; k++)
Run Code Online (Sandbox Code Playgroud)

现在这个循环的大哦是 O(n^5)。我是正确的还是做错了什么?

algorithm complexity-theory big-o

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

执行多个策略

如何执行多个策略(或将它们合并为一个策略)?

例如我有:

var policy1 = Policy.Handle< DivideByZeroException >().WaitAndRetry(5));

var policy2 = Policy.Handle< StackOverflowException >().RetryForever();
Run Code Online (Sandbox Code Playgroud)

如何同时将它们应用于一种方法?

.net polly

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

清除异步和等待的问题?

我最近一直在学习异步编程,我想我已经掌握了它.异步编程很简单,只允许我们的程序进行多任务处理.

混乱配备awaitasync编程,它似乎混淆我多一点,可能有人帮助回答一些我的顾虑?

我没有看到async关键字那么多,只是你想要一种方法让Visual Studio知道该方法可能await是某种东西,并允许它来警告你.如果它有一些其他特殊含义实际影响某些东西,有人可以解释一下吗?

移动到await,跟一个朋友,我被告知我有1周重大的事情错了之后,await不会阻止当前的方法,它只是执行留在该方法中的代码,并不会在自己时代的异步操作.

现在,我不确定这种情况经常发生,但是让我们说你有这样的代码.

Console.WriteLine("Started checking a players data.");

var player = await GetPlayerAsync();

foreach (var uPlayer in Players.Values) { 
    uPlayer.SendMessage("Checking another players data");
}

if (player.Username == "SomeUsername") { 
    ExecuteSomeOperation();
}

Console.WriteLine("Finished checking a players data.");
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我运行了一些异步代码GetPlayerAsync,如果我们深入到范围并且我们需要访问播放器会发生什么,但它还没有返回播放器呢?

如果它没有阻止该方法,它如何知道该玩家不是null,它是否做了一些魔法并等待我们如果我们到达那种情况,或者我们只是禁止自己编写这种方法并处理它我们自己.

.net c# asynchronous async-await

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

C#等待使用

我试图使用HtmlAgilityPack.NETCore获取网页将网页加载到程序中。问题在于调试直接从第一个Using语句跳出,因此根本不调用代码和第二个using。没有异常或其他东西被抛出。程序以退出代码0结尾。我在做什么错?我正在使用.net Core 2.2

HttpClient client = new HttpClient();
List<string> htmlContent = new List<string>();
using (var response = await client.GetAsync(URL))
{
    using (var content = response.Content)
    {
        var result = await content.ReadAsStringAsync();
        var document = new HtmlDocument();
        document.LoadHtml(result);
        foreach (HtmlNode node in document.DocumentNode.SelectNodes("//text()"))
        {
            htmlContent.Add(node.InnerText);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# .net-core

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