0

我在 myRawData 表中过滤了数据,结果查询将插入到 myImportedData 表中。

情况是,在将过滤后的数据插入 myImportedData 之前,我将对其进行一些格式化。

我的问题是如何将过滤后的数据存储在列表中?因为这是我重申过滤数据的最简单方法。

到目前为止,这是我的代码,它只在列表中存储 1 个数据。

    Public Sub ImportData()

    Dim con2 As MySqlConnection = New MySqlConnection("Data Source=server;Database=dataRecord;User ID=root;")

    con2.Open()
    Dim sql As MySqlCommand = New MySqlCommand("SELECT dataRec FROM myRawData WHERE dataRec LIKE '%20130517%' ", con2)

    Dim dataSet As DataSet = New DataSet()
    Dim dataAdapter As New MySqlDataAdapter()
    dataAdapter.SelectCommand = sql
    dataAdapter.Fill(dataSet, "dataRec")
    Dim datTable As DataTable = dataSet.Tables("dataRec")

    listOfCanteenSwipe.Add(Convert.ToString(sql.ExecuteScalar()))

    'ListBox1.Items.Add(listOfCanteenSwipe(0))

    End Sub

myRawData 表中的数据示例如下:

    myRawData Table
     --------------------------
    ' id    '    dataRec
     --------------------------
    '  1    '    K10201305170434010040074A466
    '  2    '    K07201305170434010040074UN45   

请帮忙。谢谢你。

编辑:

我只想实现的是将过滤后的数据存储在列表中。我使用 list 循环过滤的数据 - 我对此没有任何问题。

存储在列表中后,我现在将 dataRec 字段中的信息分离出来,以导入 myImportedData 表中。

为了增加一些知识,我将格式化 dataRec 字段,如下所示:

K07        ----> Loc
20130514   ----> date
0455       ----> time
010        ----> temp
18006D9566 ----> id
4

3 回答 3

1

尝试这个

dim x as integer

for x = 0 to datTable.rows.count - 1
  listOfCanteenSwipe.Add(datTable.rows(x).item("datarec"))
next
于 2013-05-17T10:00:36.797 回答
0

为什么不更改您的 SQL 语句来为您拆分字段呢?

您应该使用 SQL 的强大功能来执行您可以在服务器上执行的任何数据操作,它速度更快,服务器开销更少,并且专为此目的而设计

SELECT 
SUBSTRING(dataRec,1,3) as [Loc]
,SUBSTRING(dataRec,4,8) as [date]
,SUBSTRING(dataRec,12,4) as [time]
,SUBSTRING(dataRec,16,3) as [temp]
,SUBSTRING(dataRec,19,10) as [Loc]
FROM myRawData WHERE dataRec LIKE '%20130517%' 

然后将其直接加载到您的 .NET 数据表“myImportedData”中

于 2013-05-17T09:51:54.440 回答
0

获取数据表中的数据后,您可以将其转换为通用列表。然后您可以使用此列表进行进一步操作:

List<MyType> list = dataTable.Rows.OfType<DataRow>()
    .Select(dr => dr.Field<MyType>(columnName)).ToList();
于 2013-05-17T09:55:28.253 回答