使用VB.net中MySql的值填充文本框

时间:2014-09-30 21:25:07

标签: mysql vb.net

我正在尝试在MySql数据库中显示字段的值,但我尝试的所有内容最终都没有填充文本框。下面是我发现的一些例子中的代码。有人可以指出我正确的方向吗?

    Dim sqlStripCmd As New MySqlCommand("ore_price_population", Mysqlconn)

    sqlStripCmd.CommandType = CommandType.StoredProcedure
    Dim sdrstripcmd As MySqlDataReader = sqlStripCmd.ExecuteReader()


    Dim getDetailsDA = New MySqlDataAdapter
    Dim getDetailsDS As New DataSet
    getDetailsDA.SelectCommand = sqlStripCmd
    getDetailsDA.Fill(getDetailsDS, "getDetails")
    Veldspar_Isk.Text = getDetailsDS.Tables("Ore_Ice_Prices").Rows(0).Item("Veldspar").ToString()

SQL查询

    DELIMITER $$

    USE `YHI`$$

    DROP PROCEDURE IF EXISTS `ore_price_population`$$

    CREATE DEFINER=`YHI`@`%` PROCEDURE `ore_price_population`()
    BEGIN

    SELECT `Veldspar`
    FROM
    `YHI`.`Ore_Ice_Prices`;
    END$$

    DELIMITER ;

1 个答案:

答案 0 :(得分:0)

当您将一个字符串作为第二个参数传递给MySqlDataAdapter.Fill时,存储过程(一个或多个)加载的表将根据此字符串命名。所以你有一个名为getDetails的表,如果有更多的表,它们被命名为getDetails1,依此类推。

但是,您引用了一个名为Ore_Ice_Prices的表格,该表格在您的数据集中不存在。
这是导致问题的原因之一。

您需要使用

Veldspar_Isk.Text = getDetailsDS.Tables("getDetails").Rows(0).Item("Veldspar").ToString

Veldspar_Isk.Text = getDetailsDS.Tables(0).Rows(0).Item("Veldspar").ToString

您的代码中还有另一个问题。构建MySqlDataReader的行会保持连接锁定,直到您关闭阅读器。这应该在下面的Fill调用中触发异常,但我不确定在MySql中也会发生这种情况,就像在Sql Server中一样。