欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DataGrid使用心得(调用及连接数据库等等)

程序员文章站 2024-03-05 11:50:06
在工作中遇到把datagrid中绑定的后台数据库数据展示给用户时把负数变为0的小问题,现在记录下来。 例子中数据表示这个样子的: -----------------...

在工作中遇到把datagrid中绑定的后台数据库数据展示给用户时把负数变为0的小问题,现在记录下来。

例子中数据表示这个样子的:

DataGrid使用心得(调用及连接数据库等等)

-------------------------------------------------------分割线--------------------------------------
1.datagrid的调用  

datagrid对于asp.net开发来说是一种在vs 工具箱中找不到的控件,所以调用它需要手写代码:

复制代码 代码如下:

<asp:datagrid runat="server" cssclass="datalist" autogeneratecolumns="false" id="dgdata"></asp:datagrid>

注意:autogeneratecolumns 是是否要求datagrid自动生成列的意思,true为准许生成,false为不许

如果我们如示例那样选择不许,那么我们需要自己指定datagrid的列,代码就会扩展成:

复制代码 代码如下:

<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>

它绑定后的结果就会是:
DataGrid使用心得(调用及连接数据库等等)

如果是自动扩充列就是:

DataGrid使用心得(调用及连接数据库等等)

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>

把自动扩充列的属性选择true,而下面我又给它加上自定义列,结果就是

DataGrid使用心得(调用及连接数据库等等)

2.连接数据库进行操作

复制代码 代码如下:

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();

首先是连接数据库的三板斧
建立connection和查询串,装入commond,dataadapter填充。

我用dataset作为大容器,我们可以把dataset理解为一个柜子,这个柜子有很多的抽屉,抽屉就是datatable,这个抽屉里是一个一个的格子,格子里面放的东西就是我们查询出来的数据,一个格子一个数儿。找到这些数儿就需要行列坐标来确定。

一般如果不指定数据表放在哪个抽屉,系统会默认为第0个。

由于datatable是一个类,所以它的实例是一个对象,这个对象里面的东西它还是个对象,所以你不能认为 datatable里面存的数值看着像是int型的,那么我的dsret.tables[0].rows[k][m]就能当整型用,需要转换操作。

这样就能达到我最初想要的目的了。很基础,不要见笑,我也是一边学习一边总结,这样自己才能记住