项目实战(六)—Arraylist中数据写入到表中

一、问题


    上篇博客中提到怎样动态创建控件,那怎样将这些动态控件的内容写入到相应的表中


二、方案


         创建两个集合,将动态部分放入到一个集合中,再与静态部分控件放到第二个集合,这样做的好处:方便的获取数据,使静态部分和动态部分隔离(两部分数据中字段命名不同)


三、实例

U层获得数据

  <span style="font-size:18px;"> '报警温设置
            Dim objArryList As New System.Collections.ArrayList

            '将静态部分信息加入的集合中
            objArryList.Add(txtAirTempHigh.Text)
            objArryList.Add(txtAirTempLow.Text)
            objArryList.Add(txtAirHumiHigh.Text)
            objArryList.Add(txtAirHumiLow.Text)
            objArryList.Add(txtStorageTempHigh.Text)
            objArryList.Add(txtStorageTempLow.Text)
            objArryList.Add(txtStoragHumiHigh.Text)
            objArryList.Add(txtStorageHumiLow.Text)

            '获得每个仓的层数
            enStorage.storageNumber = cboStorageNo.Text.Trim
            enReceive = dataBLL.CheckStorageLayer(enStorage)

            '将层数赋给变量intC
            Dim intC As Integer
            intC = enReceive.Layer.ToString.Trim

            '获得动态部分控件的的数量
            Dim intCount = txtLIst.Count
            '重新定义一个与动态控件相等的集合
            Dim strHighBJ As New ArrayList(intCount)

            '将动态控件加入到新建的集合
            For Each txtBox As TextBox In txtLIst
                strHighBJ.Add(txtBox.Text)
            Next

            '将所有的报警温控件加入到总的集合objArrayList
            objArryList.Add(strHighBJ)

            '添加信息
            If dataBLL.AddDataInfo(objArryList, strHighBJ, intC, enGrain) = True Then
                MsgBox("成功添加信息", vbOKCancel, "信息提示")
                Exit Sub
            End If

</span>


D层存数据


 <span style="font-size:18px;">''' <summary>

   ''' 添加数据卡片信息

    ''' </summary>

    ''' <paramname="alData"></param>

    ''' <returns></returns>

    ''' <remarks></remarks>

    Public Function AddData(alData AsArrayList, alhj As ArrayList, intC As Integer, enGrain As GrainInfoEntity) AsBoolean Implements IGrainInfo.AddData

       '添加静态部分报警温设置

       Dim strSql = "exec('insert into'+@storageNumber+'([airTempHighAlarm],[airTemLowAlarm],[storageTempHighAlarm],[storageTempLowAlarm],[airHumiHighAlarm],[airHumiLowAlarm],[storageHumiHighAlarm],[storageHumiLowAlarm]"

 

       '根据层号找到相应的字段

       For j = 1 To intC

           strSql += ",[layer"

           strSql += j.ToString()

           strSql += "HighAlarm]"

           strSql += ",[layer"

           strSql += j.ToString()

           strSql += "LowAlarm]"

       Next

 

       strSql += ")values("

       '获得静态控件的值

       For k = 0 To alData.Count - 2

           strSql += alData(k).ToString()

           strSql += ","

       Next

 

       '获得动态控件的值

       For m = 0 To alhj.Count - 2

           strSql += alhj(m).ToString()

           strSql += ","

       Next

 

       strSql += alhj(alhj.Count -1).ToString()

       strSql += ")')"

 

       Dim sqlParams As SqlParameter() = {NewSqlParameter("@StorageNumber", "T_SetStorageAlarm" &enGrain.storageNumber)}

       Dim helper As New SqlHelper

       Dim bolInsert =helper.UpdDelAlter(strSql, CommandType.Text, sqlParams)

</span>

四、总结


1、动态加载控件部分:把控件放入到集合中,再将集合放入到容器中显示出来即可

2、将动态生成的控件内容写入到表中,遍历静态和动态部分的数据

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值