小编Uma*_*bas的帖子

我需要在MySQL中auto_increment一个不是主键的字段

现在,我有一个表,其主键是一个auto_increment字段.但是,我需要将主键设置为username,date(以确保不能存在具有日期的重复用户名).

auto_increment但是,我需要该字段才能更改行信息(添加和删除).

通常在这种情况下做什么?

谢谢!

mysql primary-key auto-increment

27
推荐指数
2
解决办法
4万
查看次数

将null转换为字符串的函数

我想创建一个函数来转换任何空值,例如从数据库转换为空字符串.我知道有一些方法,比如if value != null ?? value : String.Empty是否有办法传递null给方法,例如

public string nullToString(string? value)
{
    if(value == null) return empty;
    return value
}
Run Code Online (Sandbox Code Playgroud)

但我不确定参数语法这样做..

我尝试了上面但它说不是可以为空的类型.

提前致谢.

c# asp.net

22
推荐指数
5
解决办法
9万
查看次数

强制MessageBox位于.net/WPF中的应用程序窗口之上

在我的WPF应用程序中,我有时会出现问题System.Windows.MessageBox.当它最初显示时,它会显示在我的主应用程序窗口的顶部,如我所愿.有没有办法可以强迫它始终保持在主窗口的顶部?我遇到的问题是,当MessageBox显示a时,用户可以点击主应用程序窗口并将其置于前面,这意味着MessageBox隐藏在视图之外.在这种情况下,用户可能没有意识到它在那里,或者忘了它,对他们来说,主应用程序似乎已经冻结了.

我已经阅读了很多有关此问题的帖子,但没有人为我解决了这个问题.

我应该补充说,提出的线程MessageBox可能不是UI线程.谢谢汤姆

wpf modal-dialog messagebox .net-4.0

16
推荐指数
1
解决办法
3万
查看次数

使用带参数的方法创建新线程

我正在尝试创建新线程并传递带参数的方法,但错误输出.

Thread t = new Thread(myMethod);
t.Start(myGrid);

public void myMethod(UltraGrid myGrid)
{
}
Run Code Online (Sandbox Code Playgroud)

--------- ------------错误

错误:CS1502 - 第92行(164) - ' System.Threading.Thread.Thread(System.Threading.ThreadStart)' 的最佳重载方法匹配包含一些无效参数

错误:CS1503 - 第92行(164) - 参数'1':无法从'方法组'转换为' System.Threading.ThreadStart'

c# multithreading

11
推荐指数
2
解决办法
4万
查看次数

异步方法如何在C#中工作?

我在我的一些项目中使用异步方法,我喜欢它,因为它允许我的应用程序更具可伸缩性.但是,我想知道异步方法在后台如何真正起作用?.NET(或Windows?)如何知道呼叫已完成?根据我所做的异步调用的数量,我可以看到创建了新线程(但并不总是......).为什么?

另外,我想监控请求完成的时间.为了测试这个概念,我编写了以下代码,它在启动秒表后立即异步调用Web服务.

for (int i = 0; i < 10000; i++)
{
    myWebService.BeginMyMethod(new MyRequest(), result, new AsyncCallback(callback), i);
    stopWatches[i].Start();
}
// Call back stop the stopwatch after calling EndMyMethod
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为所有请求(10000)具有相同的开始时间并且持续时间将线性上升(调用0 =持续时间1,调用1 =持续时间2等).如何使用异步方法监控呼叫的实际持续时间(从请求真正执行到结束的那一刻)?


更新:异步方法是否会阻止流程?我知道它使用.NET ThreadPool但是如何IAsyncResult知道调用已完成并且是时候调用该CallBack方法了?

c# asynchronous .net-3.5

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

WPF 绑定依赖属性

我在绑定 UserControl 中的依赖项属性时遇到问题。当它初始化时,它会得到一个值,但它不会更新。我可能错过了一些明显的东西,这里有一些代码片段:

这是我绑定BalanceContent依赖属性的地方:

<Game:PlayerDetails x:Name="SelectedPlayerDetails" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Grid.RowSpan="4" 
                          BalanceContent="{Binding Source={StaticResource UserData}, Path=SelectedUser.Balance, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}">

    </Game:PlayerDetails>
Run Code Online (Sandbox Code Playgroud)

这是TextBoxUserControl

 <TextBox  VerticalAlignment="Center" FontFamily="Formata" FontSize="20" Grid.Column="2" 
         Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}}, Path=BalanceContent}" 
             Grid.Row="7"></TextBox>
Run Code Online (Sandbox Code Playgroud)

这是依赖属性:

public static readonly DependencyProperty BalanceContentProperty = DependencyProperty.Register(
        "BalanceContent", typeof(string), typeof(PlayerDetails));

    public string BalanceContent
    {
        get
        {return (string) GetValue(BalanceContentProperty);}
        set
        {SetValue(BalanceContentProperty, value);}
    }
Run Code Online (Sandbox Code Playgroud)

以下是更新所选用户的列表,该列表位于使用 UserControl 的视图中:

<ListView x:Name="lstAccounts"  Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="4" 
              ItemsSource="{Binding Source={StaticResource UserData}, Path=CurrentUserSearch}" 
              SelectedItem="{Binding Source={StaticResource UserData}, Path=SelectedUser}"
Run Code Online (Sandbox Code Playgroud)

SelectedUser在一个实现的类中定义INotifyPropertyChanged: …

c# wpf xaml binding dependency-properties

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

ASP.Net MVC选择值类型列表

我正在尝试用下拉列表做最简单的事情,但它只是不起作用.我有一个名为的整数属性SearchCriteria.Distance.这是一个简单的整数属性.我正在尝试将该属性绑定到整数的drowpdown列表,但它不会绑定.价值总是如此0.这是代码:

@Html.LabelFor(x => x.SearchCriteria.Distance, "Radius (miles)", new { @class="control-label" })
                            <div class="controls">
                                @Html.DropDownListFor(x => x.SearchCriteria.Distance, new SelectList(new int[] { 5, 15, 25, 50 }), new { @class="input-small", style="height:36px;"})
                            </div>
Run Code Online (Sandbox Code Playgroud)

因为它是一个简单的整数列表,所以不要Text Value将它与之关联起来.我在这做错了什么?

编辑:原来这个问题是我的一个愚蠢错误的结果.我有一个隐藏的字段,SearchCriteria.Distance我的表单上的id,我忘了,这阻止了设置下拉值.我将下面的解决方案标记为答案,因为它是正确的.

c# asp.net-mvc-4

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

如何在RichTextBox中捕获Ctrl-Z击键

我需要捕捉当用户按下CTRL-Z(按下CTRLZ在同一时间)在RichTextBox控制.

我关掉了ShortCutsEnabled房子.我已经试过各种组合我能想到使用KeyCode,并KeyDataKeyDownKeyPress事件.

我可以捕获一个CTRL或一个Z,但从不在一起.被RichTextBox捕获此击键我可以看到它,即使快捷键被禁用?

有没有人有一个适用于此的解决方案?

c# richtextbox winforms

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

终结器和配置

我有一个名为BackgroundWorker有一个线程不断运行的类.要关闭此线程,stop需要命名为的实例变量true.

为了确保在使用完类时释放线程,我添加IDisposable了一个调用的终结器Dispose().假设stop = true确实导致此线程退出,这个sippet是否正确?Dispose从终结器调用是对的,对吧?

终结者应该总是调用,Dispose如果object继承IDisposable,对吧?

/// <summary>
/// Force the background thread to exit.
/// </summary>
public void Dispose()
{
    lock (this.locker)
    {
        this.stop = true;
    }
}

~BackgroundWorker()
{
    this.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

c# dispose idisposable disposable finalizer

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

如何在有机会抛出异常之前将null值转换为string.empty?

我有以下代码将以前的值输入DataGridView单元格.如果在第0行和第2列或更大,则向左的val,否则直接在上面的值:

private void dataGridViewPlatypi_CellEnter(object sender, DataGridViewCellEventArgs args)
{
    // TODO: Fails if it sees nothing in the previous cell
    string prevVal = string.Empty;
    if (args.RowIndex > 0)
    {
        prevVal = dataGridViewPlatypi.Rows[args.RowIndex - 1].Cells[args.ColumnIndex].Value.ToString();
    } else if (args.ColumnIndex > 1)
    {
        prevVal = dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex-1].Value.ToString();
    }
    dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex].Value = prevVal;
}
Run Code Online (Sandbox Code Playgroud)

只要有值可以查看和复制,这就很有用.如果单元格是空白的,我得到:

用户代码未处理System.NullReferenceException
消息=未将对象引用设置为对象的实例.

我猜这是一个使用null coalesce运算符的机会,但(假设我的猜测很好),我该如何实现呢?

c# datagridview nullreferenceexception winforms datagridviewtextboxcell

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