这里的第一个问题,以及预警我对编程很新,只是试图找出基础知识。
基本上我要做的是从我的SQL服务器中选择指定列表中的所有项目,将它们添加到数组中,然后用该数组填充组合框。
SQL Server结构如下: Just a representation
用户将在登录时选择他们正在构建的产品,然后我希望组合框中包含与该项目相关的所有部件。
当前代码示例
Public Class frmProduct
Private Sub frmProduct_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim mycon As SqlConnection = New SqlConnection('connection string')
mycon.Open()
Using mycon
Dim prodlist As String = frmMain.cmbProduct.SelectedItem
Dim cmds As String = "SELECT DISTINCT(Product) FROM [Products] where Product = @prodlist"
Dim cmde As New SqlCommand(sqlt, mycon)
cmde.Parameters.AddWithValue("@Product", prodlist)
Dim dr As SqlDataReader = scmd.ExecuteReader
If dr.HasRows() Then
cmbFailure.Items.Add(dr.GetString(0))
End If
scmd.ExecuteNonQuery()
End Using
End Sub
End Class
用户在登录表单上选择产品,所选产品将转移到零件清单表格。
我目前收到的错误很可能是“无效列名产品”中的第一个错误。我认为问题可能是所选产品没有结转,但我添加了一个标签,我将文本更改为“prodlist”,它会准确地更改标签文本。
同样,我对这一切都是新鲜的,所以我为任何明显的错误道歉。谢谢你的帮助!
答案 0 :(得分:0)
在您附加的图片中,“Product1,Product2,Product3”是固定列? 如果是,则必须在select语句中使用这些列。这是一个糟糕的设计,但会起作用。 我认为这是一项研究练习,所以稍后,你可以增强你的项目,增加2个表,一个用于产品,另一个用于商店的部分产品。
答案 1 :(得分:0)
有关代码的信息。
Private Sub frmProduct_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim mycon As SqlConnection = New SqlConnection('connection string')
Dim cmds As String = "SELECT DISTINCT(Product) FROM [Products] where Product = @prodlist"
Try
' Most of the DB will having a connection fail, so programmer must set a try catch for it '
mycon.Open()
Using mycon
Dim prodlist As String = [Form].[ComBoBox].SelectedItem
Dim cmde As New SqlCommand(sqlt, mycon)
cmde.Parameters.AddWithValue("@Product", prodlist)
Dim dr As SqlDataReader = scmd.ExecuteReader
If dr.HasRows() Then
cmbFailure.Items.Add(dr.GetString(0))
End If
scmd.ExecuteNonQuery()
' For more save for this sql will execute successfully, some of programmer will use Transaction with commit '
' Microsoft Link: https://msdn.microsoft.com/en-us/library/5ha4240h(v=vs.110).aspx '
End Using
' mycon.Close() '
Catch ex As Exception
MessageBox.Show(ex.Message) ' Exception Message '
' [Optional]Release object '
' mycon.Close() '
End Try
End Sub
由于scmd与cmde不同,因此使用它的项目可能会导致结果崩溃 请你解释一下[scmd]是否代表什么?