Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 connector.NET从数据库中选择单行_Mysql_Vb.net - Fatal编程技术网

使用mysql connector.NET从数据库中选择单行

使用mysql connector.NET从数据库中选择单行,mysql,vb.net,Mysql,Vb.net,我刚刚听说了mysql连接器,现在我想从我的数据库中获取一行(每一行都是唯一的)。我不想使用循环,因为它是无用的(只有一行?)。我知道如何连接到数据库,但我就是不知道如何选择一行。这是我的代码: ''Register user in dtb cmd = New MySqlCommand("INSERT INTO `users`(`name`, `ip`, `status`) VALUES ('" & My.User.Name.Split("\")(1) &a

我刚刚听说了mysql连接器,现在我想从我的数据库中获取一行(每一行都是唯一的)。我不想使用循环,因为它是无用的(只有一行?)。我知道如何连接到数据库,但我就是不知道如何选择一行。这是我的代码:

       ''Register user in dtb
        cmd = New MySqlCommand("INSERT INTO `users`(`name`, `ip`, `status`) VALUES ('" & My.User.Name.Split("\")(1) & "','" & ip_temp & "','1')", conn)
        cmd.ExecuteNonQuery()


        ''Get user's Id from dtb  -->this is where I'm having troubles
        cmd = New MySqlCommand("SELECT 'id' FROM `users` WHERE name='" & My.User.Name.Split("\")(1) & "' ", conn)
        dtb_data = cmd.ExecuteScalar

        Debug.Print(dtb_data(0))


它不起作用
错误是:“无法将“System.String”类型的对象强制转换为“MySql.Data.MySqlClient.MySqlDataReader”类型。”(当然……)。我知道它一定看起来像“dtb_data['id']”(来自php),但VB.Net中不存在此命令。我该怎么办?

ExecuteScalar从单行返回单个值。因此,在您的情况下,
dtb_数据
必须声明为
String
。这很可能是错误的,应该声明为
Int
Long
,因为您可能希望返回
id
,而不是
'id'
作为文本

因此,完整的例子应该是:

    Dim dtb_data as Long

    cmd = New MySqlCommand("SELECT id FROM `users` WHERE name='" & My.User.Name.Split("\")(1) & "' ", conn)
    dtb_data = cmd.ExecuteScalar

    Debug.Print(dtb_data)