C# 不使用Sql表中的SqlDataSource和DataBind将数据插入gridView
在我的数据库web应用程序中,我尝试使用以下代码段从SQL表向gridView中的列添加数据C# 不使用Sql表中的SqlDataSource和DataBind将数据插入gridView,c#,asp.net,sql,sql-server,gridview,C#,Asp.net,Sql,Sql Server,Gridview,在我的数据库web应用程序中,我尝试使用以下代码段从SQL表向gridView中的列添加数据 public void GetRowHeaders(GridView gridViewSample) { string commandstr = @"SELECT ID FROM WhiteBoardTest WHERE ID!=0 ORDER BY ID"; SqlCommand rowHeaderCmd = new SqlCommand(commandstr
public void GetRowHeaders(GridView gridViewSample)
{
string commandstr = @"SELECT ID FROM WhiteBoardTest WHERE ID!=0 ORDER BY ID";
SqlCommand rowHeaderCmd = new SqlCommand(commandstr, sqlcon);
sqlcon.Open();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = rowHeaderCmd;
da.Fill(dt);
for (int i = 0; i < dt.Columns.Count; i++)
{
for (int j = 0; j < dt.Rows.Count; j++)
{
gridViewSample.Rows[0].Cells[j].Text = dt.Rows[j][i].ToString();
}
}
sqlcon.Close();
}
public void GetRowHeaders(GridView gridViewSample)
{
string commandstr=@“从白板测试中选择ID,其中ID!=0按ID排序”;
SqlCommand rowHeaderCmd=新的SqlCommand(commandstr,sqlcon);
sqlcon.Open();
DataTable dt=新的DataTable();
SqlDataAdapter da=新的SqlDataAdapter();
da.SelectCommand=rowHeaderCmd;
da.填充(dt);
对于(int i=0;i
当我运行上面的代码时,我得到的错误是
ArgumentOutOfRangeException:索引超出范围。必须为非负数且小于集合的大小
我知道发生异常是因为gridView没有可用的行或列
有人能建议我如何向列添加行吗?我也没有使用
SqlDataSource
,因为我想从另一个表向gridView添加一个列。我只想在select语句中包含额外的列,并绑定到gridView,除非有特殊原因不这样做。注意新的sql
public void GetRowHeaders(GridView gridViewSample)
{
string commandstr = @"SELECT a.*, b.somecolumn FROM tablea as a inner join tableb as b on b.someid= a.someid WHERE ID!=0 ORDER BY ID";
SqlCommand rowHeaderCmd = new SqlCommand(commandstr, sqlcon);
sqlcon.Open();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = rowHeaderCmd;
da.Fill(dt);
gridViewSample.DataSource = dt;
gridviewSample.DataBind();
sqlcon.Close();
}
或者您可以填充某个类的集合(请记住使用gridviews数据绑定的属性)、一个列表,然后将其数据绑定到网格。Dayakar,您可以做的是将其他列和数据添加到DataTable本身,然后将其绑定到gridview。下面是一个示例代码
private void SetupGridView()
{
var dt = GetDataTable();
// add addition column
dt.Columns.Add(new DataColumn() {ColumnName = "Id2", DataType = typeof (int)});
// add additional data
for (var i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["Id2"] = Convert.ToInt32(dt.Rows[i][0])*2;
}
GridView1.DataSource = dt;
GridView1.DataBind();
}
private void SetupGridView()
{
var dt=GetDataTable();
//添加添加列
Add(newdatacolumn(){ColumnName=“Id2”,DataType=typeof(int)});
//添加其他数据
对于(var i=0;i
您还可以合并两个数据表以创建一个数据表,然后将其绑定到gridview。提及