我正在使用我的uwp应用程序遇到一个奇怪的错误(?).
我有一个页面,其中包含多个用于用户输入的文本框,每个文本框都InputScope设置为编号,然后按预期在平板电脑模式下打开键盘.但是,如果您点击下一个框,键盘将关闭,并且需要第二次点击才能打开键盘.如果用户按Tab键切换框,也会发生这种情况.
我认为这与Focus()前一个文本框触发失去焦点事件之前触发的事件有关,但我不确定如何覆盖该行为.
如何防止屏幕键盘关闭,还要确保仍然保持正确的输入镜?
编辑:经过进一步调查,问题似乎几乎是随机的.有时您可以移动到不同的盒子并保持打开状态,但有时它会每次关闭键盘.
我知道参数化查询是如何工作的,并且我已经在我到目前为止编写的每个非硬编码查询中使用它们,但是当编写一个函数来创建动态查询(用于测试目的)时,它让我怀疑它是否真的是安全的使用"原样"
string sql = "SELECT * FROM Table WHERE";
string fullstring = "The quick brown fox jumped over";
string[] words = fullstring.Split(' ');
foreach (string item in words)
{
sql = sql + " Column LIKE '%" + item + "%' AND";
}
sql = sql.Remove(sql.Length - 3);
Run Code Online (Sandbox Code Playgroud)
如果我将其转换为查询,结果将是
SELECT * FROM Table WHERE Column LIKE '%the%' AND Column LIKE '%quick%' AND Column LIKE '%brown%' AND Column LIKE '%fox%' AND Column LIKE '%jumped%' AND Column LIKE '%over%'
Run Code Online (Sandbox Code Playgroud)
现在我仍然非常确定由于缺少参数,这仍然对注入攻击开放,但是我不确定如何由于分隔符是一个空格字符,使得类似SELECT * …
我有一个查询:
SELECT l.id, title
FROM (SELECT id
FROM news
WHERE (title LIKE '%football predictions argentina%' OR text LIKE '%football predictions argentina%')
AND lang = 'en'
AND STATUS = 1
ORDER BY id LIMIT 0, 10)
o JOIN news l ON l.id = o.id
WHERE 1
ORDER BY date DESC
LIMIT 0, 10;
Run Code Online (Sandbox Code Playgroud)
解释命令给了我:不可能在阅读常量表后注意到
不幸的是,我无法弄清楚,这意味着什么以及如何解决?
表的结构是这样的:
id int(10)
title varchar(255)
text text
image varchar(255)
lang varchar(3)
date date
status smallint(1)
Run Code Online (Sandbox Code Playgroud)
除了 id - 主键,我有一个组合索引(语言、状态、日期)