在限制 sql 查询中使用文本框

Using textbox in limit sql query

提问人:Edison Balangue Feraro 提问时间:5/11/2023 最后编辑:Edison Balangue Feraro 更新时间:6/16/2023 访问量:84

问:

通常我一直在使用这些语句并且它有效:

"SELECT * FROM tablename LIMIT 10"

我已经试过了,但它有错误,说 sql 语法错误

"SELECT * FROM tablename LIMIT '" + TextBox1.Text + "' "
SQL MySQL vb.net

评论

0赞 nbk 5/11/2023
除了不需要的单引号外,VB Net 还使用 & 进行字符串连接

答:

0赞 Andrew Morton 5/11/2023 #1

看看第一个有效的语句没有引号,而第二个不起作用的语句是如何的?您需要遵循第一个的模式。

但是,您需要将 TextBox1.Text 解析为整数并将其连接到字符串中以防止 SQL 注入攻击,因此...

Dim lim = Integer.Parse(TextBox1.Text)
Dim sql = "SELECT * FROM [tablename] LIMIT " & lim

您可能希望改用 TryParse 来检查是否提供了有效数字。

(此外,VB.NET 中的字符串连接运算符是 ,而不是 。&+

评论

0赞 Edison Balangue Feraro 5/11/2023
对不起,我的错,我已经编辑了我的帖子。关于您粘贴的代码,我尝试使用它。虽然我收到这个错误。“System.FormatException:'输入字符串的格式不正确。'
0赞 Andrew Morton 5/11/2023
@EdisonBalangueFeraro 该错误消息意味着它无法将 TextBox1.Text 分析为整数。那个文本框中有什么?
0赞 Edison Balangue Feraro 5/11/2023
我明白了,兄弟。因此,文本框的值来自数据库。所以我的代码安排是表单加载。上面的代码位于代码的第一行中,从数据库提取数据到文本框的代码如下。因此,当表单加载时,它会加载上面的第一个代码。因为文本框默认值上没有任何内容。我收到“输入字符串格式不正确”错误。
0赞 Andrew Morton 5/12/2023
@EdisonBalangueFeraro 在这种情况下,tt 最好不要使用 TextBox 来存储值 - 只需使用普通变量来存储它。当然,如果对用户有用,您仍然可以在 TextBox 中显示该值。