Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql vb.net sql select语句查找所有非空的,是否需要使用参数?_Mysql_Vb.net_Parameter Passing - Fatal编程技术网

Mysql vb.net sql select语句查找所有非空的,是否需要使用参数?

Mysql vb.net sql select语句查找所有非空的,是否需要使用参数?,mysql,vb.net,parameter-passing,Mysql,Vb.net,Parameter Passing,我只是试图在我的SQL数据库表中找到所有不等于null的记录。因此,当我编写select语句时,我会像对待任何其他语句一样对待它,以避免sql注入问题 下面是一个例子: Command=newsqlcommand 连接,打开 Command.Connection=Connection Command.CommandType=CommandType.Text Command.CommandText=从[Comments]不为NULL的MyTable中选择*'已尝试[Comments]=@Comme

我只是试图在我的SQL数据库表中找到所有不等于null的记录。因此,当我编写select语句时,我会像对待任何其他语句一样对待它,以避免sql注入问题

下面是一个例子:

Command=newsqlcommand 连接,打开 Command.Connection=Connection Command.CommandType=CommandType.Text Command.CommandText=从[Comments]不为NULL的MyTable中选择*'已尝试[Comments]=@Comments '命令参数。AddWithValue@Comments,不为空 da=新的SqlDataAdapterCommand 爸爸,菲尔兹,我的桌子 对于ds.TABLEMYTABLE.Rows中作为数据行的每一行 如果不是IsDBNullrowwComments,则 IDLIST.AddrowwTempID Comments_RichText.appendtext服务日期:&rowfFromDate&&rowwName&vbNewLine&rowComments&vbNewLine&vbNewLine 如果结束 下一个 连接。关闭
如您所见,我尝试了使用参数来避免SQL注入,但没有返回任何内容,也没有返回正确行的参数。为什么参数方法不起作用?由于我没有连接语句中的任何内容,例如TextBox.Text或string,我是否必须为IS not NULL使用参数?任何帮助都会很好,因为我不明白为什么一种方法有效,而另一种方法无效

参数化将不起作用,因为这将使用一个相等运算符进行检查,它不适用于像is not NULL这样的文本。它不工作,你认为它不只是重写字符串与您的参数

尽管如此,使用空合并仍然很容易实现,如:

从MyTable中选择*,其中为空[注释]。“空”!=@评论
如果你明白我的意思,当你想找到空评论时,@Comments是空的。显然,您可以使用您想要的任何字符串变量来代替“Empty”。

不,您的查询不包含来自用户输入的串联文本。这里不可能有sql注入,也不需要参数,因为您的查询是一个常量字符串