调用mysql过程而不在vb.net中定义参数

时间:2015-09-30 03:53:21

标签: mysql vb.net stored-procedures

如何在vb.net中使用参数调用mysql过程而不在vb.net中定义ther参数。

这是我的代码:

MYSQL:

CREATE PROCEDURE `usp_totalprice`(IN `id` INT) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER select count(*) as total from tbl_extra where foodID = id

VB.NET

Dim ds As New DataSet
    Dim da As New MySql.Data.MySqlClient.MySqlDataAdapter("usp_totalprice", "server=localhost; user id=root; password=; database=hrmsbf;")
    da.SelectCommand.Parameters.Add(New MySql.Data.MySqlClient.MySqlParameter("@id", 1))
    da.Fill(ds)
    MsgBox(ds.Tables(0).Rows(0)(0))

我发现了这个错误:

  

PROCEDURE hrmsbf.usp_totalprice的参数数量不正确;   预期1,得到0。

我试过这个 "Dim da As New MySql.Data.MySqlClient.MySqlDataAdapter("usp_totalprice(@id)", "server=localhost; user id=root; password=; database=hrmsbf;")"这是有效的,但这不是我想要的。

1 个答案:

答案 0 :(得分:0)

尝试这种方式

Dim ds As New DataSet
    Dim da As New MySql.Data.MySqlClient.MySqlDataAdapter("usp_totalprice", "server=localhost; user id=root; password=; database=hrmsbf;")
    da.SelectCommand.Parameters.Add(New MySql.Data.MySqlClient.MySqlParameter("@id", 1))
da.SelectCommand.Parameters("@id").Direction = ParameterDirection.Input
    da.Fill(ds)
    MsgBox(ds.Tables(0).Rows(0)(0))