小编Djo*_*olo的帖子

在c#中使用datepickers验证的正确方法?(窗体)

只是无法通过datepicker验证获得它.我有datepicker Fromdatepicker To,所以我想阻止用户做一些功夫和seting datepicker datepicker To更大,我碰到了一些问题但找不到答案,所以我尝试做最简单的我能想到的方式:

设置MaxDate属性datepicker 来自form_load事件

private void Form1_Load(object sender, EventArgs e)
{
     datepickerFrom.MaxDate = datepickerFrom.Value;
}
Run Code Online (Sandbox Code Playgroud)

然后为value_changed事件做同样的事情

private void datepickerFrom_ValueChanged(object sender, EventArgs e)
{
    datepickerFrom.MaxDate = datepickerFrom.Value;
}
Run Code Online (Sandbox Code Playgroud)

这很简单,只有几行代码,而且我只需要datepickerFrom_ValueChanged事件,但最近我尝试输入日期datepicker来选择它,然后一切都崩溃了.所以我找到了一些验证解决方案,而不是设置MaxDate属性,我试过这个.

private void dtFrom_ValueChanged(object sender, EventArgs e)
{        
    DateTime from = datepickerFrom.Value;
    DateTime to = datepickerTo.Value;
    int year= from.Year > to.Year ? …
Run Code Online (Sandbox Code Playgroud)

c# datepicker winforms

5
推荐指数
0
解决办法
199
查看次数

SQL与通配符一样,在某些字母上返回错误的结果

当使用带有通配符的like关键字时,我无法弄清楚为什么我得到错误的结果.为了讨论起见,我举了一些小例子来说明我的问题.假设我们有一些表格

CREATE TABLE TestingLike(
[Name] VARCHAR(50)  
)

INSERT INTO TestingLike VALUES ('A'), ('AB'), ('L') ,('LJ')
Run Code Online (Sandbox Code Playgroud)

现在,当我使用此搜索条件时

SELECT [Name] FROM TestingLike WHERE [Name] LIKE 'A%'

SELECT [Name] FROM TestingLike WHERE [Name] LIKE 'L%'
Run Code Online (Sandbox Code Playgroud)

第一个查询返回(A,AB) ,而第二个返回只是大号.奇怪的是,使用临时表时不会发生这种情况

对于上帝的爱,有人可以解释为什么会发生这种情况,我做了一些研究,但是找不到答案,我使用SQL SERVER RC1 2017以及SQL SMS.

感谢您的时间.

下面是执行计划的图片

在此输入图像描述

sql t-sql sql-server wildcard sql-like

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

SQL"select case"给出了意想不到的输出

对于上帝的爱,有人可以请你解释一下这里发生了什么.我正在研究一些存储过程错误修复,经过大量的努力,我能够找到这个奇怪的错误发生的地方所以我为了演示而做了一个简单的例子.

情况1

DECLARE @test VARCHAR(45) ='0001'
SELECT CASE 0
WHEN -1 THEN ''
WHEN 0 THEN @test
WHEN 1 THEN 12345
END AS 'output'
Run Code Online (Sandbox Code Playgroud)

案例2

DECLARE @test VARCHAR(45) ='0001'
SELECT CASE 0
WHEN -1 THEN ''
WHEN 0 THEN @test

END AS 'output'
Run Code Online (Sandbox Code Playgroud)

案例1:输出为1

情况2:输出为0001,如预期

零怎么了?奇怪的是它只删除了数字之前的零(无论结尾处是什么数字),例如 DECLARE @test VARCHAR(45) ='1000'工作正常,就目前情况而言,很明显情况为零,如果我删除WHEN 0 THEN @test输出是否为预期的null.

做了一些研究,发现只有这个.我正在使用SQL SERVER RC1 2017以及SQL SMS.

感谢您的时间.

sql sql-server

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

标签 统计

sql ×2

sql-server ×2

c# ×1

datepicker ×1

sql-like ×1

t-sql ×1

wildcard ×1

winforms ×1