DataGrid使用心得(調(diào)用及連接數(shù)據(jù)庫等等)
在工作中遇到把DataGrid中綁定的后臺數(shù)據(jù)庫數(shù)據(jù)展示給用戶時把負(fù)數(shù)變?yōu)?的小問題,現(xiàn)在記錄下來。
例子中數(shù)據(jù)表示這個樣子的:
-------------------------------------------------------分割線--------------------------------------
1.DataGrid的調(diào)用
DataGrid對于ASP.NET開發(fā)來說是一種在vs 工具箱中找不到的控件,所以調(diào)用它需要手寫代碼:
<asp:DataGrid runat="server" CssClass="DataList" AutoGenerateColumns="False" Id="dgData"></asp:DataGrid>
注意:AutoGenerateColumns 是是否要求DataGrid自動生成列的意思,true為準(zhǔn)許生成,false為不許
如果我們?nèi)缡纠菢舆x擇不許,那么我們需要自己指定DataGrid的列,代碼就會擴(kuò)展成:
<asp:DataGrid ID="dgData" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="LARGE" HeaderText="大"></asp:BoundColumn>
<asp:BoundColumn DataField="SMALLS" HeaderText="小"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
它綁定后的結(jié)果就會是:

如果是自動擴(kuò)充列就是:
PS:如果我們這么寫呢?
<asp:DataGrid ID="dgData" runat="server" AutoGenerateColumns="true">
<Columns>
<asp:BoundColumn DataField="LARGE" HeaderText="大"></asp:BoundColumn>
<asp:BoundColumn DataField="SMALLS" HeaderText="小"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
把自動擴(kuò)充列的屬性選擇true,而下面我又給它加上自定義列,結(jié)果就是
2.連接數(shù)據(jù)庫進(jìn)行操作
OracleConnection conn = new OracleConnection("Data Source=xxx;User Id=xxx;Password=xxx;");
string sqlcmd = "select * from test_123";
conn.Open();
OracleCommand cmd = new OracleCommand(sqlcmd,conn);
DataSet dsRet = new DataSet();
OracleDataAdapter ad = new OracleDataAdapter(cmd);
ad.Fill(dsRet);
conn.Close();
int i = dsRet.Tables[0].Rows.Count;
int j = dsRet.Tables[0].Columns.Count;
for (int k = 0; k < i; k++)
for (int m = 0; m < j; m++)
{
if (int.Parse(dsRet.Tables[0].Rows[k][m].ToString()) < 0)
dsRet.Tables[0].Rows[k][m] = "0";
}
dgData.DataSource = dsRet.Tables[0];
dgData.DataBind();
首先是連接數(shù)據(jù)庫的三板斧:
建立Connection和查詢串,裝入Commond,DataAdapter填充。
我用DataSet作為大容器,我們可以把DataSet理解為一個柜子,這個柜子有很多的抽屜,抽屜就是DataTable,這個抽屜里是一個一個的格子,格子里面放的東西就是我們查詢出來的數(shù)據(jù),一個格子一個數(shù)兒。找到這些數(shù)兒就需要行列坐標(biāo)來確定。
一般如果不指定數(shù)據(jù)表放在哪個抽屜,系統(tǒng)會默認(rèn)為第0個。
由于DataTable是一個類,所以它的實(shí)例是一個對象,這個對象里面的東西它還是個對象,所以你不能認(rèn)為 DataTable里面存的數(shù)值看著像是int型的,那么我的dsRet.Tables[0].Rows[k][m]就能當(dāng)整型用,需要轉(zhuǎn)換操作。
這樣就能達(dá)到我最初想要的目的了。很基礎(chǔ),不要見笑,我也是一邊學(xué)習(xí)一邊總結(jié),這樣自己才能記住
相關(guān)文章
C#頁碼導(dǎo)航顯示及算法實(shí)現(xiàn)代碼
C#頁碼導(dǎo)航算法要求:頁數(shù)小于等于1時不顯示;頁數(shù)大于10時,自動縮短,需要的朋友可以了解下2012-12-12Coolite Cool Study 1 在Grid中用ComboBox 來編輯數(shù)據(jù)
作為Coolite的第一個教程,我想展現(xiàn)給大家能夠體現(xiàn)Coolite強(qiáng)大的例子(當(dāng)然也比官方例子稍微復(fù)雜一點(diǎn))。2009-05-05教你30分鐘通過Kong實(shí)現(xiàn).NET網(wǎng)關(guān)
Kong是一個Openrestry程序,而Openrestry運(yùn)行在Nginx上,用Lua擴(kuò)展了nginx。所以可以認(rèn)為Kong = Openrestry + nginx + lua,這篇文章主要介紹了30分鐘通過Kong實(shí)現(xiàn).NET網(wǎng)關(guān),需要的朋友可以參考下2021-11-11ASP.NET 緩存分析和實(shí)踐淺析提高運(yùn)行效率
說到ASP.NET緩存,那就是:盡早緩存;經(jīng)常緩存您應(yīng)該在應(yīng)用程序的每一層都實(shí)現(xiàn)緩存。2010-02-02Excel自定義關(guān)閉按鈕實(shí)現(xiàn)代碼
這篇文章主要介紹了Excel自定義關(guān)閉按鈕實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-12-12asp.net下使用Request.From獲取非服務(wù)器控件的值的方法
asp.net下使用Request.From獲取非服務(wù)器控件的值的方法,需要的朋友可以參考下。2010-03-03