Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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
是否有vb.net代码用CheckedListBox中提到的文本以外的文本填充数据库中的行_Vb.net_Items_Checkedlistbox - Fatal编程技术网

是否有vb.net代码用CheckedListBox中提到的文本以外的文本填充数据库中的行

是否有vb.net代码用CheckedListBox中提到的文本以外的文本填充数据库中的行,vb.net,items,checkedlistbox,Vb.net,Items,Checkedlistbox,我正在开发一个通信应用程序。使用VB.NET。因此,我有一个CheckedListBox,一旦其父窗体出现,它就会填充项,并且它的项集合通过SQL代码从数据库中表中的特定列派生而来 因此,假设我已在该表单中填写了所有必需的数据,并单击“保存”按钮,它会将所有选中的项“文本”保存到新行。但是,我需要保存另一个文本,而不是选中列表框中提到的文本。假设它是(我想保存到新行的文本)在同一个表中提到的文本,但在不同的列中。这是我用来确保我在某一点上是优秀的代码 从一个星期以来,直到现在,我一直在与该代码股

我正在开发一个通信应用程序。使用VB.NET。因此,我有一个CheckedListBox,一旦其父窗体出现,它就会填充项,并且它的项集合通过SQL代码从数据库中表中的特定列派生而来

因此,假设我已在该表单中填写了所有必需的数据,并单击“保存”按钮,它会将所有选中的项“文本”保存到新行。但是,我需要保存另一个文本,而不是选中列表框中提到的文本。假设它是(我想保存到新行的文本)在同一个表中提到的文本,但在不同的列中。这是我用来确保我在某一点上是优秀的代码

从一个星期以来,直到现在,我一直在与该代码股票

事实上,我已经尝试了While..End While和Do While..Loop的一些代码,以便用我想要的列行更改MessageBox中的Str,但没有人成功

Try 
 Dim Str As String = ""
 If (checkedListBox1.CheckedItems.Count > 0) Then
     Dim i As Integer = 0
     Do While (i < checkedListBox1.CheckedItems.Count)
         If (Str = "") Then
             Str = checkedListBox1.CheckedItems(i).ToString
             label1.Text = Str
         Else
             Str = (Str + (", " + checkedListBox1.CheckedItems(i).ToString))
             label1.Text = Str
         End If

         i = (i + 1)
     Loop

     ' Make your connection to the DataBase and insertion code starting within that area.
     MessageBox.Show(("Your selection is for : " + Str))
 Else
     MessageBox.Show("Please select one name at least to work it out!")
 End If


 'While (checkedListBox1.CheckedItems.Count > 0)
  'checkedListBox1.SetItemChecked(checkedListBox1.CheckedIndices(0), false)
  'End While
试试看
Dim Str As String=“”
如果(checkedListBox1.CheckedItems.Count>0),则
尺寸i为整数=0
执行时(i0)
'checkedListBox1.SetItemChecked(checkedListBox1.CheckedDices(0),false)
"结束!
特例 MessageBox.Show((ex.Message+ex.ToString))
最后试试看

我想我明白你想要什么了。您希望显示一个值并能够检索相应的值

创建一个具有2个属性的简单类

创建一个(T)列表以保存包含2个值的对象。我从数据库中检索到数据,但它可能来自任何来源。您将使用select字符串中的真实名称替换列名和表名

将CheckedListBox绑定到(T的)列表。将DisplayMember和ValueMember设置为类的属性名称

您可以通过循环CheckedItems并请求“ValueString”来检索第二个字符串

然后在表格上

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'Fill CheckBoxList
    Dim dataList = GetCorrespondenceTypes()
    CheckedListBox1.DataSource = dataList
    CheckedListBox1.DisplayMember = "DisplayString"
    CheckedListBox1.ValueMember = "ValueString"
End Sub

Private Function GetCorrespondenceTypes() As List(Of CorrespondenceType)
    Dim dt As New DataTable
    Dim lstTypes As New List(Of CorrespondenceType)
    Using cn As New SqlConnection(My.Settings.BuildersConnectio)
        Using cmd As New SqlCommand("Select DisplayColumn, ValueColumn From CorrespondenceTypes;", cn)
            cn.Open()
            dt.Load(cmd.ExecuteReader)
        End Using
    End Using
    For Each row As DataRow In dt.Rows
        lstTypes.Add(New CorrespondenceType(row(0).ToString, row(1).ToString))
    Next
    Return lstTypes
End Function
然后得到第二个字符串

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim lst As New List(Of String)
    For Each item As CorrespondenceType In CheckedListBox1.CheckedItems
        Debug.Print(item.ValueString)
    Next
End Sub

我不知道如何发布图片来澄清我的问题,你在哪里向表中写入行?我在这段代码中看不到任何数据库交互。这是一段测试代码,以确保代码在某一点上运行良好。因此,我需要的不是带有Str的messagebox,而是将其他文本引用发布到至少一个选中项目的代码。请您引导我发布图像,向您展示整个内容“好的,让我解释我的问题”。无论如何,解释你的问题,但在问题中,而不是在评论中。没有人需要阅读所有的评论才能理解你在说什么。非常感谢你的回复和代码。有点长,但我会尝试部署我的应用程序。如果代码对您有帮助,请单击问题左侧的复选标记(勾号)接受我的答案。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim lst As New List(Of String)
    For Each item As CorrespondenceType In CheckedListBox1.CheckedItems
        Debug.Print(item.ValueString)
    Next
End Sub