1
同じ値を持っていたDataTableの行(VB)をマージする方法:私は値を持つ1つのDataTable tempDTを持って
Serial_No testong
---------------------------------------
DTSHCSN001205035919201 [ OUT ] <br/> Partner : 90000032 <br/> Date : 16 Feb 2012
DTSHCSN001205035919201 [ IN ] <br/> Partner : 90000032 <br/> Date : 16 Feb 2012
DTSHCSN001205035919201 [ OUT ] <br/> Partner : 80000869 <br/> Date : 31 Mar 2012
DTSHCSN001205035919201 [ IN ] <br/> Partner : 80000869 <br/> Date : 31 Mar 2012
私はtestongの値が新しいに追加する1行に重複serial_noをマージしたいという問題カラム。
私は多くの方法を試しましたが、解決策を見つけることができません。私は結果がデバッグする場合
Dim tempDt = GetItemDataTable()
Dim dtData As New DataTable
dtData.Columns.Add("Serial_No")
Dim i As Integer = 0
Dim row As DataRow
For Each row In tempDt.Rows
i += 1
Dim dr As DataRow = dtData.NewRow
dr("Serial_No") = row(0)
If dr("Serial_No") = row(0) Then
Dim colBaru As GridViewDataTextColumn = New GridViewDataTextColumn()
colBaru.Caption = i
colBaru.FieldName = i
colBaru.CellStyle.HorizontalAlign = HorizontalAlign.Center
colBaru.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
colBaru.Width = 150
colBaru.UnboundType = DevExpress.Data.UnboundColumnType.Integer
colBaru.VisibleIndex = grid.VisibleColumns.Count
colBaru.PropertiesTextEdit.DisplayFormatString = "d1"
colBaru.PropertiesTextEdit.EncodeHtml = True
grid.Columns.Add(colBaru)
dtData.Columns.Add(i)
dr(i) = row(3)
dtData.Rows.Add(dr)
Else
dr("Serial_No") = row(0)
dtData.Rows.Add(dr)
End If
:ここ
は、背後に私のコードですしかし、私は結果がこのようなものですたかった。私は自分のコードを更新しました
あなたの応答にはニックネームに感謝していますが、依然として正しい解決策が提供されていません。あなたは何かを忘れてしまった、私はDr = dtData.NewRowの後に他の条件がSerial_Noを追加するためにdr(Serial_No)=行(0)を置く。問題は現在、データテーブルに追加しない最初のループの行(3)の値である。行(0)が追加された後、行(3)の2番目の値が読み込まれます。私はdr(i)=行(3)をelse条件に入れてみました。しかしそれは働かない。 – tyo
if else条件の前に 'dr(Serial_No)= row(0)'を置くのはあなたの条件が常に真であるかどうか疑問です。それで、新しい行を作りませんか?また、私はサイドで宣言されているので、単に 'dtData.Columns.Add(1)'と 'dr(0)= row(3)'を入れておく必要があります。 – Nick
yapは正しいですが、 (シリアル)=行(0)else条件では、値は挿入されません。私はあなたの答えを修正しました。それが正しく働いています。とにかくおかげさまで...今日はこのモダールの締め切りです。あなたは私の救い主です。 :P – tyo