Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql.Data.MySqlClient.MySqlException-vb.net_Mysql_Vb.net - Fatal编程技术网

MySql.Data.MySqlClient.MySqlException-vb.net

MySql.Data.MySqlClient.MySqlException-vb.net,mysql,vb.net,Mysql,Vb.net,无法找出我的代码出了什么问题。我想从mysql数据库中检索sha256密钥 keys table: Id(int 4) | key (varchar64) 1 | 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 myAdapter.Fill(MyDataTable)行不断抛出错误 MySql.Data.MySqlClient.MySqlException未处理 ErrorCode

无法找出我的代码出了什么问题。我想从mysql数据库中检索sha256密钥

keys table:
Id(int 4)    |  key (varchar64) 
1            |  5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
myAdapter.Fill(MyDataTable)行不断抛出错误

MySql.Data.MySqlClient.MySqlException未处理
ErrorCode=-2147467259 Message=您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,了解 在第1行使用接近“key WHERE id=1”的正确语法

以下是完整的错误日志:

这是我从youtube学到的代码…

  Dim connectDatabase As New MySqlConnection("Server=localhost;User Id=root;Password=testing123;Database=flag15")
    If TextBox1.Text = "" Then
        MessageBox.Show("Please input a user id", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Else
        Dim myAdapter As New MySqlDataAdapter("SELECT * FROM keys WHERE id= " & TextBox1.Text, connectDatabase)
        Dim mydataatable As New DataTable
        myAdapter.Fill(mydataatable)
        If mydataatable.Rows.Count > 0 Then
            Label4.Text = mydataatable.Rows(0).Item("key")
        Else
            MessageBox.Show("User ID is not found", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            TextBox1.Text = ""
            Label4.Text = ""
        End If
    End If

对我来说似乎是正确的。尝试在查询末尾添加“;”

将myAdapter设置为新的MySqlDataAdapter(“从键中选择*,其中id=“&Integer.parse(Trim(TextBox1.Text))+”;,connectDatabase)

我添加了修剪和整数解析,以防传递更多的空白字符


尝试记录并发布您正在运行的最终查询。

我假设您需要在
中使用撇号,其中id=…
。然而,你对未来的发展持开放态度。不要连接sql字符串,而是使用sql参数

Using con = New MySqlConnection("Server=localhost;User Id=root;Password=testing123;Database=flag15")
    Using myAdapter = New MySqlDataAdapter("SELECT * FROM keys WHERE id=@id", con)
        myAdapter.SelectCommand.Parameters.AddWithValue("@id", TextBox1.Text)
        Dim mydataatable As New DataTable
        myAdapter.Fill(mydataatable)
        '...'
    End Using
End Using

我在第二行出错了。。重载解析失败,因为无法使用以下参数调用可访问的“New:@ysj:Typo,更正。我错误地使用了
SqlDataAdapter
而不是
MySqlDataAdapter
。但是下面是一个构造函数,它允许从
字符串(对于
SelectCommand
)和
MySqlConnection
)创建
MySqlDataAdapter
:我尝试在其他表中添加一个键列,但在同一个数据库中,它起作用了。。。但是为什么它在key table=x上不起作用呢