繁体   English   中英

如何在vb.net的列表中存储所选数据?

[英]How to store selected data in a list in vb.net?

我已经过滤了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   

请帮忙。 谢谢。

编辑:

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

存储在列表中之后,我现在将对要导入myImportedData表中的dataRec字段中的信息进行加密。

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

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

尝试这个

dim x as integer

for x = 0 to datTable.rows.count - 1
  listOfCanteenSwipe.Add(datTable.rows(x).item("datarec"))
next

为什么不更改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”中

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

List<MyType> list = dataTable.Rows.OfType<DataRow>()
    .Select(dr => dr.Field<MyType>(columnName)).ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM