Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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 从数据库创建和填充标签_Vb.net_Visual Studio 2010_Labels - Fatal编程技术网

Vb.net 从数据库创建和填充标签

Vb.net 从数据库创建和填充标签,vb.net,visual-studio-2010,labels,Vb.net,Visual Studio 2010,Labels,目前,我正在开发一个用户可以输入和查看评论的系统。输入部分工作正常,但是让它显示注释不起作用 我目前试图做的是,对于comments表中的每个条目,我希望系统创建一个新标签,然后用日期、用户名和用户注释填充该标签的文本 我已经附上下面的代码,任何输入或指导都将不胜感激 Try Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\IMData.mdb;") Dim

目前,我正在开发一个用户可以输入和查看评论的系统。输入部分工作正常,但是让它显示注释不起作用

我目前试图做的是,对于comments表中的每个条目,我希望系统创建一个新标签,然后用日期、用户名和用户注释填充该标签的文本

我已经附上下面的代码,任何输入或指导都将不胜感激

Try
    Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\IMData.mdb;")
    Dim cmd As New OleDbCommand
    con.Open()
    cmd.Connection = con
    cmd.CommandText = "Select * from Comments where ID=@p1"
    cmd.Prepare()
    cmd.Parameters.AddWithValue("@p1", TrackNum.Text)
    Dim Comments = cmd.ExecuteReader
    Dim labelY = 418
    With Comments
        .Read()
        For Each item In Comments
            Dim newComment As New Label
            newComment.Name = item
            newComment.Left = 983
            newComment.Top = labelY
            newComment.Font = Font
            newComment.Text = .Item("Date") + " " + .Item("User") + " : " + .Item("Comment")
            newComment.Visible = True
            Me.Controls.Add(newComment)
            labelY += 47
        Next
        .Close()
    End With
    con.Close()
Catch
End Try
这是工作代码:

    Try
        Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\IMData.mdb;")
        Dim cmd As New OleDbCommand
        con.Open()
        cmd.Connection = con
        cmd.CommandText = "Select * from Comments where ID=@p1"
        cmd.Prepare()
        cmd.Parameters.AddWithValue("@p1", TrackNum.Text)
        Dim Comments = cmd.ExecuteReader
        With Comments
            .Read()
            Dim labelY = 418
            For Each item In Comments
                Dim newComment As New Label
                newComment.Name = labelY
                newComment.Top = labelY
                labelY += 47
                newComment.Left = 983
                newComment.Font = Font
                newComment.Text = item("Date") + " : " + item("User") + " : " + item("Comment")
                newComment.Width = 900
                newComment.Visible = True
                Me.Controls.Add(newComment)
            Next
            .Close()
        End With
        con.Close()
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try

这里有几个错误,因为它是在一个try,catch上没有输出,所以您没有看到问题

有关更正,请参见下面的注释:

Try
    Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\IMData.mdb;")
    Dim cmd As New OleDbCommand
    con.Open()
    cmd.Connection = con
    cmd.CommandText = "Select * from Comments where ID=@p1"
    cmd.Prepare()
    cmd.Parameters.AddWithValue("@p1", TrackNum.Text)
    Dim Comments = cmd.ExecuteReader
    Dim labelY = 418
    With Comments
        .Read()
        For Each item In Comments
            Dim newComment As New Label
            newComment.Name = item 'this needs to be a string such as item("ID") - must be unique!'
            newComment.Left = 983
            newComment.Top = labelY
            newComment.Font = Font
            newComment.Text = .Item("Date") + " " + .Item("User") + " : " + .Item("Comment")
                              'these 'Item's should not have the period in front of them'
            newComment.Visible = True
            Me.Controls.Add(newComment)
            labelY += 47
        Next
        .Close()
    End With
    con.Close()
Catch
'add in something to catch the error such as console.writeline'
End Try

不幸的是,我仍然无法让它工作。。。我已将.Name=item(“ID”)更改为labelY(因此它是唯一的,所有ID都是相同的),并删除了句点,但我无法让它仍然工作。我想捕获注释捕获的内容,以查看ExecuteReader获得的内容,但我也不知道如何使其正常工作……如果在捕获(同一行)后添加
ex As Exception
,则可以使用console.writeline(ex.tostring)或(等待反对意见…)msgbox(ex.tostring),它将向您显示错误的位置或位置(等待爆炸…)对于调试注释,请尝试,共捕获!感谢OSKM!我得到的错误是System.InvalidCastException:从字符串“Wo311110414”转换键入“Double”无效。System.FormatException:输入字符串的格式不正确。它是否指示了错误发生在哪一行?顺便说一句,如果ID为uniqueManaged以使其正常工作,则更为正常。需要定义.Width?我将在一分钟内用工作代码编辑上面的内容。