我在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
答案 0 :(得分:1)
试试这个
dim x as integer
for x = 0 to datTable.rows.count - 1
listOfCanteenSwipe.Add(datTable.rows(x).item("datarec"))
next
答案 1 :(得分: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”
中答案 2 :(得分:0)
获取数据表中的数据后,您可以将其转换为通用列表。然后您可以使用此列表进行进一步操作:
List<MyType> list = dataTable.Rows.OfType<DataRow>()
.Select(dr => dr.Field<MyType>(columnName)).ToList();