工大助手 C 之DataTable

2022-09-08 18:45:16 字數 3321 閱讀 9102

3)使用者可獲得特定時間段內的加權平均分(1學期、1學年、全部)。

13070003  張   帆

13070046  孫宇辰

13070004  崔   巍

13070006  王   奈

13070002  張雨帆

13070045  汪天公尺

我在團隊專案中負責的部分是資料的處理。具體而言就是介於指令碼和圖形介面中間層面的處理,即指令碼將資料從教務中抓取並儲存在本地excel中,我負責將其讀入主程式,並解析;然後,根據圖形介面端傳入的請求篩選資料並返回供圖形介面顯示,同時還要計算篩選後的資料的加權平均分並返回給圖形介面顯示。

在最初的構想中,我認為實現過程中的難點是對資料的儲存與管理,所以我在最初的實現版本中定義了乙個結構體來儲存成績,結構體如下:

1

///2

///《成績》

結構體,存有爬下來的成績資料,分別包括

《學年》

、《學期》

、《課程名稱》

、《課程種類》

、《學分》

、《績點》

、《成績》屬性3

///4

public

struct

grades

534 }

但在後續學習從excel中讀取資料的過程中發現了乙個非常有用的類就是datatable,他可以很輕鬆的實現**類資料的管理與操作,甚至還能實現查詢等功能。所以在團隊專案的第一篇部落格裡先總結一下datatable的用法吧。

datatable我覺得可以將其看作是乙個excel中的乙個sheet,datatable包含屬性columns和rows分別表示列與行,可以認為是乙個sheet中的列與行。

1)建構函式

datatable()                         不帶引數初始化datatable 類的新例項。 

datatable(string tablename)                用指定的表名初始化datatable 類的新例項。 

datatable(string tablename, string tablenamespace)   用指定的表名和命名空間初始化datatable類的新例項。 

2)常用屬性

casesensitive                         指示表中的字串比較是否區分大小寫。 

childrelations                        獲取此datatable 的子關係的集合。 

columns                                  獲取屬於該錶的列的集合。 

constraints                              獲取由該錶維護的約束的集合。 

dataset                                   獲取此表所屬的dataset。 

defaultview                             獲取可能包括篩選檢視或游標位置的表的自定義檢視。 

haserrors                                 獲取乙個值,該值指示該錶所屬的dataset 的任何表的任何行中是否有錯誤。 

minimumcapacity                         獲取或設定該錶最初的起始大小。該錶中行的最初起始大小。預設值為 50。 

rows                                       獲取屬於該錶的行的集合。 

tablename                               獲取或設定datatable 的名稱。 

3)常用方法

acceptchanges()                       提交自上次呼叫acceptchanges() 以來對該錶進行的所有更改。

begininit()                                開始初始化在窗體上使用或由另乙個元件使用的datatable。初始化發生在執行時。

clone()                                     轉殖datatable 的結構,包括所有datatable 架構和約束。

select()                                   傳入乙個類sql的語句,對datatable中的資料進行查詢,返回查詢結果為乙個datarow的陣列

importrow(datarow row)                    將datarow 複製到datatable 中,保留任何屬性設定以及初始值和當前值。

merge(datatable table)                     將指定的datatable 與當前的datatable 合併。

newrow()                                 建立與該錶具有相同架構的新datarow。

然後附上我在c#中對datatable的使用**:

1

//初始化datatable

2 queryresult = new

datatable();

3 queryresult.columns.add("

學年", typeof(string

));4 queryresult.columns.add("

學期", typeof(string

));5 queryresult.columns.add("

課程名稱

", typeof(string

));6 queryresult.columns.add("

課程性質

", typeof(string

));7 queryresult.columns.add("

學分", typeof(string

));8 queryresult.columns.add("

績點", typeof(string

));9 queryresult.columns.add("

成績", typeof(string

));10

11//

獲取查詢結果

12 datarow tmpqureresult = gradestable.select(querystring);

13 foreach (datarow dr in tmpqureresult)

14 queryresult.rows.add(dr.itemarray);

在本例中主要對datatable的使用就是查詢操作,在函式中傳入querystring,然後根據querystring查詢並將結果返回到乙個datarow的陣列,然後將其新增到返回結果。

工大助手 C 之DataGrid

我在團隊專案中負責的部分是客戶端的介面製作。其中我需要在使用者查詢資訊時把使用者需要的資訊展現出來。這裡我使用了datagrid,我認為使用datagrid顯示資料是十分方便的,所以在此我來總結一下datagrid的使用。datagrid控制項的作用簡單點說就是將 顯示出來,用的多的是直接鏈結資料庫...

網路助手之NABCD

sunny code團隊 劉中睿,杜曉松,鄭成 我們小組這次做的軟體名字叫為校園網路助手。它主要有著兩項功能 網路助手與校內網盤。n need 在學校裡有時候我們就會向朋友借他們的賬號以便上網,每次修改ip是個麻煩事,網路助手可以提供快速ip修改 在學校晚上11 30,小蝴蝶會強制下線,每次從被窩爬...

c 基礎資料操作之遍歷DataTable並輸出

方法1 for int i 0 i dt.rows.count i 方法2 foreach datarow dr2 in dt.rows 關於datacolumn datacolumn col col new datacolumn id system.int32 tbtest.columns.add...