0

我是 asp.net 的新手,在这里我试图用数据库中的值填充单个文本框。

我已经创建了这段代码但没有工作:

Try
    Dim MyCon As New SqlConnection("server = servername; uid = sa; pwd =abc; database = master")
    Dim MyCommand As New SqlCommand("Select empFirstName from Employees where empid=2")
    MyCon.Open()
    Dim MyReader = MyCommand.ExecuteReader()
    While MyReader.Read()
        Dim sqlda = New SqlDataAdapter()
        Dim dt As New Data.DataTable()
        Dim ds As New Data.DataSet
        sqlda.Fill(ds)
        TextBox1.Text = ds.Tables(0).ToString
        MyCon.Close()
    End While

请更正代码并告诉我我错在哪里。如果有的话,请给我一个链接,以通过示例为初学者阅读更多关于这个主题的信息。

4

3 回答 3

0

这将只存储数据库中的第一行

TextBox1.Text = ds.Tables(0).Rows(0)(0).ToString();

Row(0)(0)表示从第一列获取第一行

如果查询返回超过 1 行,那么您需要迭代数据表并将其存储在 aList(Of String)而不是数组中,因为您不知道查询返回的行数

Dim EmpFirstName As New List(Of String)
Dim myRow As DataRow
Dim myColumn As DataColumn
For Each myRow in dt.Rows
     EmpFirstName.Add(myRow(dt.Columns(0)))
Next
于 2013-05-07T14:34:50.980 回答
0

试试这个示例,它会为你工作http://geekswithblogs.net/dotNETvinz/archive/2008/09/12/bind-textbox-and-label-control-with-data-from-database.aspx

于 2013-05-07T14:29:41.330 回答
0

ds.Tables(0)

将返回一个数据表

如果要获取表名,请改为:

ds.Tables(0).TableName

如果要返回值,请编写以下代码:

ds.Tables(0).Rows(0).Item("empFirstName")

于 2013-05-07T14:31:30.857 回答