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