如何通过查询生成器向导创建的vb.net适配器将参数传递给mysql函数

如何通过查询生成器向导创建的vb.net适配器将参数传递给mysql函数,mysql,vb.net,mysql-function,Mysql,Vb.net,Mysql Function,我有一个疑问: SELECT * FROM table_1 WHERE (`update_column` = (DATE_SUB(curdate(), INTERVAL 10 DAY))) 它工作正常,我想将10天更改为参数,并通过适配器传递它的值,我正在使用查询生成器,在适配器中使用查询: 填表日期 我想变成这样: SELECT * FROM table_1 WHERE (`update_column` = (DATE_SUB(curdate(), INTERVAL @_days DAY

我有一个疑问:

 SELECT * FROM table_1 WHERE (`update_column` = (DATE_SUB(curdate(), INTERVAL 10 DAY)))
它工作正常,我想将10天更改为参数,并通过适配器传递它的值,我正在使用查询生成器,在适配器中使用查询:

填表日期

我想变成这样:

 SELECT * FROM table_1 WHERE (`update_column` = (DATE_SUB(curdate(), INTERVAL @_days DAY)))
我想用以下方法传递日值:

  Me.table_1Adapter.FillBy_sub_date(Me.dataset.table_1, 5) 
5是我不想通过查询的天数

问题:当我将数字10改为@天时,mysql显示错误

函数参数列表中出错:“\u天”无法识别。 无法分析查询文本


不止一种方法, 首先使用参数在mysql数据库中创建过程 我们称之为“几天后再回来” 您的查询是正确的,所以请将其放入过程中

CREATE PROCEDURE return_after_some_day (in param1 INT)
BEGIN
SELECT * FROM `table` where `update_column` = (DATE_SUB(curdate(), INTERVAL param1 day  ));
  • 创建过程

    CREATE PROCEDURE return_after_some_day (in param1 INT)
    BEGIN
    SELECT * FROM `table` where `update_column` = (DATE_SUB(curdate(), INTERVAL param1 day  ));
    
    end

  • 然后转到生成器向导并将查询添加到表适配器

  • 选择“使用现有存储过程”
  • 从列表中选择您的过程名称,即(几天后返回)
  • 选择表格日期并设置填充方法的名称
  • 进入代码内部,从数据适配器调用方法名,如
  • Me.table_1Adapter.name_调用过程的方法(Me.dataset.table_1, (五)


    数字5将传递给proceuder

    INTERVAL
    关键字中删除反勾号。同样的错误仍然出现,参数问题与INTERVAL无关,因为当设置(INTERVAL 10天)正常工作时,函数参数列表中的错误:“dd”无法识别。无法分析查询文本。其中dd是传递给查询的@dd,而不是10天