我正在尝试选择单元格值以用户按下的相同keychar开始的第一行.那是给我带来麻烦的部分.
以下是我处理事件的方式(使用工作解决方案更新):
private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsLetter(e.KeyChar))
{
for (int i = 0; i < (dataGridView1.Rows.Count); i++)
{
if (dataGridView1.Rows[i].Cells["Name"].Value.ToString().StartsWith(e.KeyChar.ToString(), true, CultureInfo.InvariantCulture))
{
dataGridView1.Rows[i].Cells[0].Selected = true;
return; // stop looping
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我确信这是一件很简单的东西,我忽略了,但是因为我的生活无法弄清楚它是什么.
使用解决方案更新了代码
我有一个大约10k连续整数值的列表,这些值应该从外部应用程序插入到表列中.但是,执行COUNT()会显示只插入了9900.
我需要确定序列中的哪些数字未插入.
使用它反过来很简单,只需从表列中选择值为BETWEEN x和y,但我还没想出如何打印(或选择)表列中不存在的值.
SELECT * FROM table
WHERE column1 = 'value'
AND column2 BETWEEN 1 AND 10000
Run Code Online (Sandbox Code Playgroud)
如何打印BETWEEN子句中的值,其中column2的值不在范围内?
我必须编写一个SQL视图,它将日期时间列的时间部分作为字符串以hhmmss格式返回(显然SAP BW不理解hh:mm:ss).
这段代码是SAP推荐的方法,但我认为必须有一种更好,更优雅的方法来实现这一目标
TIME = case len(convert(varchar(2), datepart(hh, timecolumn)))
when 1 then /* Hour Part of TIMES */
case convert(varchar(2), datepart(hh, timecolumn))
when '0' then '24' /* Map 00 to 24 ( TIMES ) */
else '0' + convert(varchar(1), datepart(hh, timecolumn))
end
else convert(varchar(2), datepart(hh, timecolumn))
end
+ case len(convert(varchar(2), datepart(mi, timecolumn)))
when 1 then '0' + convert(varchar(1), datepart(mi, timecolumn))
else convert(varchar(2), datepart(mi, timecolumn))
end
+ case len(convert(varchar(2), datepart(ss, timecolumn)))
when 1 then '0' + convert(varchar(1), datepart(ss, timecolumn))
else convert(varchar(2), …Run Code Online (Sandbox Code Playgroud)