Vb.net 您能用用户输入填充数据集吗?

Vb.net 您能用用户输入填充数据集吗?,vb.net,dataset,Vb.net,Dataset,我需要将用户输入(从控制台输入)存储到Visual Basic中的数据集。这可能吗?我似乎在网上找不到关于这样做的任何信息。如果有人能给我指出正确的方向,那就太棒了 编辑:我的表中的列是名为Person的表中的FirstName、LastName、State等。 控制台应用程序的开始:“输入FirstName:”,然后“EnterLastName:”等等 用户输入的值存储在特定的变量中,例如firstName、lastName,因此我想知道如何将这些变量放入数据集中 多谢各位 下面是一个简短的基

我需要将用户输入(从控制台输入)存储到Visual Basic中的数据集。这可能吗?我似乎在网上找不到关于这样做的任何信息。如果有人能给我指出正确的方向,那就太棒了

编辑:我的表中的列是名为Person的表中的FirstName、LastName、State等。 控制台应用程序的开始:“输入FirstName:”,然后“EnterLastName:”等等

用户输入的值存储在特定的变量中,例如firstName、lastName,因此我想知道如何将这些变量放入数据集中


多谢各位

下面是一个简短的基本示例。它很可能无法直接满足您的需要,因为您可能需要使用类型化数据集。由于您的问题没有指定关于您可能已经尝试过的代码的问题,因此我将提供以下内容

Option Strict On

Module Module1

    Sub Main()    
        Dim ds As DataSet = CreateNewDataSet()
        Dim entries As New List(Of String())
        For i = 1 To 3
            Console.WriteLine($"Enter first column value for row {i.ToString}:")
            Dim input1 As String = Console.ReadLine()
            Console.WriteLine($"Enter second column value for row {i.ToString}:")
            Dim input2 As String = Console.ReadLine()
            entries.Add({input1, input2})
        Next    
        entries.ForEach(Sub(x) ds.Tables(0).Rows.Add(x))    
    End Sub

    Private Function CreateNewDataSet() As DataSet
        Dim ds As New DataSet()
        Dim dt As New DataTable()
        Dim col1 As New DataColumn("Column1")
        Dim col2 As New DataColumn("Column2")
        dt.Columns.AddRange({col1, col2})
        ds.Tables.Add(dt)
        Return ds
    End Function
End Module

如果不知道列名,可以使用反射获取输入对象属性的名称。还可以使用属性来过滤属性。使用
DataTable.LoadDataRow
方法将数组作为行加载。 下面是一个如何动态执行的示例:

Dim input As New List(Of Object)
For i = 0 To 5  
    Console.WriteLine("enter your first name and last name:")  
    input.Add(New With {.First = Console.ReadLine, .Last = Console.ReadLine})  
Next  

Dim myData As New DataSet  
Dim table = myData.Tables.Add()
table.Columns.AddRange(input.First.GetType.GetProperties.Select(Function(p) New DataColumn(p.Name)).ToArray)
input.ForEach(Function(o) table.LoadDataRow(o.GetType.GetProperties.Select(Function(p) p.GetValue(o, Nothing)).ToArray, False))  

For Each row In table.Rows  
    Console.WriteLine("first:{0} ,Last:{1}", row(0), row(1))  
Next

当我试图显示数据集中的值时,firstname显示为空。我还收到一个错误:“找不到第1列”@timmyhoo也许你错过了什么。请复制并粘贴以上代码,然后重试。这是我正在寻找的。非常感谢你!干杯!:-)