【发布时间】:2014-05-30 02:22:41
【问题描述】:
我有两个数据表(dtSF 和 CurveFitTable),其中包含我必须相乘的两个不同值。目标是生成一个数据表,其中包含来自两个不同数据表的两个值的乘积。扭曲的是,CurveFitTable 来自我已经定义的目录中的不同 csv 文件。
我打算做的是有一个像下图中的adjustedCopy表一样的数据表。不幸的是,我得到的是一个不断被覆盖的单个数据表,每当我尝试将它数据绑定到网格时,数据表似乎是空的。请帮忙。 T.T
这是我的代码:
Dim adjusteddemandtable As New DataTable()
Dim adjustedcopy As New DataTable()
Dim multiply_SF As Double
Dim adjusted_Demand As Double
Dim initial_Demand As Double
Dim basecurvestamp As Date
adjusteddemandtable.Columns.Add("Base Curve", GetType(Date))
adjusteddemandtable.Columns("Base Curve").SetOrdinal(0)
adjusteddemandtable.Columns.Add("Adjusted_Demand", GetType(Double))
Dim CurveFitTatble As New DataTable()
Try
For Each filename As String In System.IO.Directory.GetFiles(BackUpDirectory)
CurveFitTatble = GetDataTabletFromCSVFile(filename)
For Each row2 As DataRow In dtSF.Rows()
For Each row As DataRow In CurveFitTatble.Rows()
initial_Demand = row(1)
basecurvestamp = row(0)
multiply_SF = row2(0)
adjusted_Demand = multiply_SF * initial_Demand
Dim rowa As DataRow = adjusteddemandtable.Rows.Add()
rowa(0) = basecurvestamp
rowa(1) = adjusted_Demand
Next
Next
adjustedcopy.Merge(adjusteddemandtable, True, MissingSchemaAction.AddWithKey)
Next
GridView1.DataSource = adjustedcopy
GridView1.DataBind()
Catch ex As Exception
ErrorMessageBox(ex.Message)
End Try
我想,我遗漏了一些东西或忽略了一个重要步骤。请指教。提前致谢。
【问题讨论】:
-
这是 Visual Basic 而不是 C#
-
嗯,是的。对不起。建议使用标签。
-
不用担心我只是突出显示标签更改
-
您是否只想将相应索引处的行中的值相乘,例如每个表中第一行的两个值,然后是每个表中第二行的两个值,但不是一个表中的第一行和另一个表中的第二行?如果是这样,那么您应该使用单个
for循环,而不是嵌套的foreach循环。嵌套循环意味着您将一个表中的每一行与另一个表中的每一行组合在一起,即如果您在一个表中有 M 行,在另一个表中有 N 行,那么您的结果将有 (M * N) 行。跨度> -
你的意思是我应该使用: For i As Integer = 0 To DataTables.Rows.Count?好的,我现在就试试。谢谢:D