从Mysql中选择并放入变量VB.NET

时间:2013-04-30 14:32:15

标签: mysql vb.net

我对以下代码有疑问:

dim nama as string    
cnn.ConnectionString = "Server=localhost; user id=root; password=; database=aplikasi_store_testing;"
        cmd.Connection = cnn
        cnn.Open()
        cmd.CommandText = "SELECT ID_Barang, Nama_Barang from data_barang WHERE ID_Barang= '" & txtIDBarangInput.Text & "';"

之后,我需要将数据从“Nama_Barang”更改为nama。 任何人都可以帮我这个吗?提前,非常感谢你的宝贵帮助!

2 个答案:

答案 0 :(得分:3)

您可能需要执行命令

dim nama as string    
cnn.ConnectionString = "............"
cmd.Connection = cnn
cnn.Open()
cmd.CommandText = "SELECT ID_Barang, Nama_Barang from data_barang WHERE ID_Barang= @id"
cmd.Parameters.AddWithValue("@id", txtIDBarangInput.Text )
Dim reader  = cmd.ExecuteReader()
while reader.Read()
   nama = reader(1).ToString()
End While

当然,此代码假定您已经声明了连接和命令对象 另请注意,我已删除了字符串连接并放置了参数占位符 在构建字符串以传递给数据库引擎时,这是正确的做法 阅读此主题(Sql Injection

顺便说一句,选择你已经知道的ID_Barang的值是没用的 此外,在这个领域,我有一个疑问。在您的问题代码中,您将值放在单引号之间,将值视为字符串。但名称ID_Barang表示数值。你确定这个字段是文本吗?

答案 1 :(得分:0)

cmd.CommandText = "SELECT Nama_Barang from data_barang WHERE ID_Barang = '" & txtIDBarangInput.Text & "';"

Dim o As Object = cmd.ExecuteScalar()

If (Not o.Equals(DBNull.Value)) Then
    nama = DirectCast(o, string)
Else
    name = string.Empty
End If

您应该使用参数而不是将id值直接插入查询字符串中,以避免SQL注入漏洞等。