甲方爸爸要求使用rdlc做報表,報表內容需要從資料庫中的多張表拼接得出,因無法使用sql語句直接匯出結果**,故需要將多張datatable拼接得到相同的**,即結果**式為多個**式相加
新建結果表:
dim dt as datatalbe
dim dr as datarow
dt.columns.
add(
"columnname"
)dt.
columns
("columnname"
).datatype =system.type.
gettype
("system.double")……
dt.rows.
add(dr)
以上是在vb.net環境下使用vb語言構建的表結構,也可以通過sql語句構建:
select
'' col1,
0 col2,
0.00 col3 from database1.dbo.table1 where
1<>
1
ps:使用1<>1可以呼叫資料表的表結構,1=1可以避免在sql語句撰寫過程中避免where子句後無查詢條件的尷尬局面
for i as integer = 0 to dt1.rows.count-1
for n as integer = 0 to dt2.rows.count-1
if dt1.rows(i)("col1")=dt2.rows(n)("col1") then
……end if
next
next
1.merge方法
詳可見:
2.使用datatable本身的方法相當與在外層是一層迴圈體,在內層通過select生成datarow,然後通過row.indexof 獲取符合條件的行所在的行數,然後可以快速獲得需要的資料。這樣的話,相應時間不到一秒,在速度上大大提公升
for d2 as integer =
0 to dtset.rows.count -
1 dim tempdr
() as datarow = dttype.
select
("篩選條件"
) dim d as integer = dttype.rows.
indexof
(tempdr(0
))……
next
dim dtcashshow as datatable = cashtuidt.defaultview.
totable
(false,
)
這種方法適用於外層資料行較少而內層資料行較多的情況,其他方法還在繼續學習……
奮鬥的娃子乙隻……………………
DataTable表的常用知識點
datatable表示記憶體中的乙個資料表,而非資料庫中的表。在持久化到資料庫之前,datatable的任何變化是不會影響資料庫的。1.建立datatable物件有以下幾種方式 1 通過建構函式建立 a.無參建構函式 datatable table1 new datatable b.有參建構函式 d...
Hibernate 小知識點
今天比較忙沒怎麼寫 知識一些曉得知識或是經驗吧!1.lazy延遲載入 也可以說是需要的時候再區載入 場景 乙個類如person和address,person可以通過getaddress 來得到address的set集合.有乙個dao控制類operation.方法public person query...
dom 小知識點
1 classname屬性可設定或返回元素的 class 屬性。function getclass document.getelementbyid d1 classname bbb alert document.getelementbyid d1 classname 2 removechild 刪除...