DataSet对象获取相应列值、行列数、列名、取出特定值这些操作的总结,具体代码如下:
1 、 DataSet.Tables[0].Rows[ i ][ j ]
其中i 代表第 i 行数, j 代表第 j 列数
2、 DataSet.Tables[0].Rows[ i ].ItemArray[ j ]
其中i 代表第 i 行数, j 代表第 j 列数
3、DataSet.Tables[0].Columns.Count
取得表的总列数
4、 DataSet.Tables[0].Rows.Count
取得表的总行数
5、 DataSet.Tables[0].Columns[ i ].ToString()
取得表的 i 列名
需要注意的是,取出来的值都是一个类,,你需要把它转化成自己需要的类型,
需要string类型就*.ToString()
需要int类型就Convert.ToInt32(*)
da.Fill(ds) --这里没有指定Table名
Gridview.DataSource = ds.Tables(0) --所以这里用 Tables(0)
因为一个DataSet中可以放下好多个表,一般读取数据库时数据默认填入DataSet的第一个表中,其Index为0,所以这里用Tables(0),特指DataSet中的第一个DataTable。
如果
da.Fill(ds ,"UserTableName")
Gridview.DataSource = ds.Tables("UserTableName") --这里就可以用名称了
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class t2 : System.Web.UI.Page
{
DataSet ds = new DataSet();
static string str = ConfigurationManager.ConnectionStrings["constring"].ConnectionString;
SqlConnection conn = new SqlConnection(str);
protected void Page_Load(object sender, EventArgs e)
{
conn.Open();
SqlDataAdapter myCommand = new SqlDataAdapter("select * from ContestItem where con_een >GETDATE() and con_peo =1", conn);
myCommand.Fill(ds, "ContestItem");
conn.Close();
if(!IsPostBack)
{
MyDataGrid.DataSource = ds;
MyDataGrid.DataBind();
}
}
protected void MyDataGrid_ItemCommand(object source, DataGridCommandEventArgs e)
{
if(e.CommandName.Equals("signUp"))
{
int c = e.Item.ItemIndex;
//TableRow tr = e.Item;
// b.Text = tr.Cells[1].Text;
lab.Text = ds.Tables[0].Rows[c][0].ToString(); //其实就是这个的使用
Button b = (Button)e.Item.FindControl("sign");
b.Text = "取消";
}
}
}