我正在尝试在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 ;
答案 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中一样。