2014-10-09 72 views
0

我繼承了另一位開發者在vb.net編寫的應用程序(我仍然不太流利)。它包含一個數據綁定的GridView,它也動態地生成列的標籤。例如,我需要將學年標題更改爲2009-2010,而不僅僅是2010年。目前的代碼爲標題設置了學年,但它似乎也控制着顯示的數據。如何更改DataBound GridView上的標籤?

下面是代碼:

sql_string_Total = sql_string_Total & " sum([" & Academic_year - 4 & "]) as [" & Academic_year - 4 & "],sum([" & Academic_year - 3 & "]) as [" & Academic_year - 3 & "],sum([" & Academic_year - 2 & "]) as [" & Academic_year - 2 & "],sum([" & Academic_year - 1 & "]) as [" & Academic_year - 1 & "],sum([" & Academic_year & "]) as [" & Academic_year & "], " 
sql_string_Total = sql_string_Total & " sum([" & Academic_year & "]-[" & Academic_year - 1 & "]) as [" & (Academic_year - 1) & "-" & (Academic_year) & " Diff.], " 
sql_string_Total = sql_string_Total & " (cast(((sum([" & Academic_year & "])-sum([" & Academic_year - 1 & "]))/(sum([" & Academic_year - 1 & "])*1.0)*100.0)as numeric(4,1))) as [" & (Academic_year - 1) & "-" & (Academic_year) & " % Change] " 

我怎樣才能改變這些的cols的標題,而不會影響顯示的數據?

回答

1

這似乎更多的是SQL-VB問題的混合,而不僅僅是一個VB的問題。 SQL中的as關鍵字指示該字段在結果集中的名稱。話雖如此......

快速解決方案:只需要改變字段的名稱,因爲你需要它。例如,更改:

sql_string_Total = sql_string_Total & " sum([" & Academic_year - 4 & "]) as [" & Academic_year - 4 & "],sum([" & Academic_year - 3 & "]) as [" & Academic_year - 3 & "],sum([" & Academic_year - 2 & "]) as [" & Academic_year - 2 & "],sum([" & Academic_year - 1 & "]) as [" & Academic_year - 1 & "],sum([" & Academic_year & "]) as [" & Academic_year & "], " 

sql_string_Total = sql_string_Total & " sum([" & Academic_year - 4 & "]) as [" & Academic_year - 5 & "-" & Academic_year - 4 & "],sum([" & Academic_year - 3 & "]) as [" & Academic_year - 4 & "-" & Academic_year - 3 & "],sum([" & Academic_year - 2 & "]) as [" & Academic_year - 3 & "-" & Academic_year - 2 & "],sum([" & Academic_year - 1 & "]) as [" & Academic_year - 2 & "-" & Academic_year - 1 & "],sum([" & Academic_year & "]) as [" & Academic_year - 1 & "-" & Academic_year & "], " 

以前的開發人員使用的變量都列求和,總和將會有名字相同,但可以將名稱更改爲任何你在不影響將被查詢的數據的情況下。在gridview中,列將採用您爲結果列指定的名稱。

慢,建議解決方案:重寫那段代碼。我知道這不是你的,但正如你所看到的,這是一個小怪物可以閱讀,任何編輯都會讓它更糟。更何況這是創建dinamyc sql的非常糟糕的方法。尋找一種重寫方法還可以幫助你提高你的VB.net技能,如果你想暫時擱置這個項目,我有一種感覺,你會需要它們。我建議你看看String.Format方法和Parameterized Queries的一開始。