C# Dataset数据处理

来源:百度知道 编辑:UC知道 时间:2024/06/21 16:31:28
string sqlstr = "SELECT * FROM table";
DataSet ds = SqlServerProvider.SqlHelper.ExecuteDataSet(conn, CommandType.Text, sqlstr);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
nsort = ds.Tables[0].Rows[i]["Flag"].ToString();
}
datalist.DataSource = ds;
datalist.DataBind();

赋值给nsort ,然后绑定到datalist中的某一列中去。
请问问题出在哪里?
在前面有声明,没报错;也查出来数据,只是在显示中为原表的第一行中那列的值。
比如第一行此列的值为:aaa, 后面各列的也为:aaa.

看来说得还不够明白,但不知我想要的这个效果能不能得到实现。(表之前已经设计好了)
表中有一列字段名为:flag 值比如为1,2;(在这里做个判断,给它们赋值。)
但在页面不要显示为1或2,给它们另外赋一个值,就好比注释一样,给个中文名称便于区分。

二楼,数组不越界,因为他是小于。

你那个for循环在这里没有什么意义呀
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
nsort = ds.Tables[0].Rows[i]["Flag"].ToString();
}
循环下来的结果是nsort等于表中最后一行里的列flag的值。还不如直接等:
nsort=ds.Tables[0].Rows[ds.Tables[0].Rows.count-1]["Flag"].ToString();
恩,不大明白楼主想要什么效果?

回答补充:
不绑定 1、2这些数字,一般可以分两个情况。
第一种:flag是令一个表的外键,如果是这样,那你查询时也把那个表也查进来,条件当然是table.flag=[那个表].flag;
第二种:本表的简单枚举。那么建议修改查询语句,使用case when...then,把你那个1、2、3这些直接转换成描述文字。
是这个意思么?

数组越界么?for (int i = 0; i < ds.Tables[0].Rows.Count - 1; i++)试试

最好是在ItemDataBound事件里面控制

你看是不是nsort 没声明

三楼正解......