首页 > 解决方案 > 在表单中动态创建标签和文本框,其中标签中的文本应来自我的 sql 紧凑型数据库

问题描述

我想动态地创建LabelsTextBoxes。 中的文本应该来自我的数据库。Form
LabelSQL Compact

当我运行时Form,它给了我这个错误:

从字符串 "" 到类型 'double' 的转换无效。

我试过研究,但找不到答案。
谢谢

这是我的代码:

Public Function countrows()
    checkServer()

    CnString = "Data Source=|DataDirectory|\dbEsyPOS.sdf;Persist Security Info=True; Password=CQ25dbEsyPOS"
    Dim sqlCon As New SqlCeConnection(CnString)
      sqlCon.Open()
    Using cmd As New SqlCeCommand("SELECT *FROM tbl_sale ")
        Using sda As New SqlCeDataAdapter
            cmd.Connection = sqlCon
            sda.SelectCommand = cmd

            Using sqlDT As New DataTable

                Try
                    sda.Fill(sqlDT)
                    If (sqlDT.Rows.Count > 0) Then
                        For i As Integer = 0 To sqlDT.Rows.Count - 1
                            Dim lblTitle As Label = New Label()

                            lblTitle.Name = "Label" & i.ToString()
                            lblTitle.Text = CStr(sqlDT.Rows(i)(0)("term_of_payment"))
                            Panel2.Controls.Add(lblTitle)
                        Next
                    End If

                Catch ex As Exception
                    MessageBox.Show("Oops :" + ex.Message)
                End Try
            End Using
        End Using
    End Using
End Function

PS我是新手,任何帮助或更正将不胜感激:)

标签: vb.net

解决方案


这行代码没有意义:

lblTitle.Text = CnString(sqlDT.Rows(i)(0)("term_of_payment"))

我猜您实际上想要做的是String从“term_of_payment”列中获取一个。看起来像这样:

lblTitle.Text = CStr(sqlDT.Rows(i)("term_of_payment"))

推荐阅读