我对以下代码有疑问:
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。 任何人都可以帮我这个吗?提前,非常感谢你的宝贵帮助!
答案 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注入漏洞等。