gpt4 book ai didi

mysql - 在.NET中获取MySQL数据时出错

转载 作者:行者123 更新时间:2023-11-29 12:23:16 25 4
gpt4 key购买 nike

我正在创建一个从数据库检索数据的 .NET Web 应用程序。不过,运行以下代码时我不断收到以下错误。

命令执行期间遇到 fatal error 。

InnerException 是 {"Parameter '?Username' 必须被定义。"},但我可以看到 ?Username 已定义,并且我知道 Session("Username") 正确且存在。

这是代码。它在 SupervisorNameAdapter.Fill(SupervisorNameData, "Data") 行失败。

Dim SupervisorID As String = Session("Username")

Dim qryGetSupervisorName As String = "select * from USERS where UserID = ?Username"

Using cn As New MySqlConnection(ConfigurationManager.ConnectionStrings("ConnectionInfo").ConnectionString), cmd As New MySqlCommand(qryGetSupervisorName, cn)

cmd.Parameters.AddWithValue("?Username", SupervisorID)

cn.Open()
cmd.ExecuteNonQuery()
cn.Close()

Dim SupervisorNameAdapter As New MySqlDataAdapter(qryGetSupervisorName, cn)
Dim SupervisorNameData As New DataSet
SupervisorNameAdapter.Fill(SupervisorNameData, "Data")

If SupervisorNameData.Tables(0).Rows.Count = 0 Then

MsgBox("An error has occured. Please refresh the page.", vbOKOnly, "Error!")

Else

SupervisorName.Text = SupervisorNameData.Tables(0).Rows(0).Item(1) & " " & SupervisorNameData.Tables(0).Rows(0).Item(2)

End If

End Using

有谁知道为什么会这样吗?

最佳答案

您没有正确设置 MySqlAdapter 使用的命令。您只需传递命令文本字符串,适配器就会使用该字符串构建另一个缺少所需参数的命令

只需将代码更改为

Dim SupervisorID As String = Session("Username")
Dim qryGetSupervisorName As String = "select * from USERS where UserID = ?Username"

Using cn As New MySqlConnection(ConfigurationManager.ConnectionStrings("ConnectionInfo").ConnectionString), cmd As New MySqlCommand(qryGetSupervisorName, cn)

cmd.Parameters.AddWithValue("?Username", SupervisorID)
Dim SupervisorNameAdapter As New MySqlDataAdapter(cmd)
Dim SupervisorNameData As New DataSet
....

End Using

关于mysql - 在.NET中获取MySQL数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28721378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com