初学c# 请大家帮忙看看哪里有问题
下面是我写的绑定的代码,可是调试一直提示我发生堆栈异常,然后绿色的光标停留在
dv = ds.Tables["agent"].DefaultView; 这句上面private void BindData()
{
///connect to database
SqlConnection conn = new SqlConnection();
conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["DataConn2"];
conn.Open();
SqlDataAdapter SqlCom = new SqlDataAdapter("select top 2 agtcode,par_code,en_name,agtname,sales,rel,tele,address from agent",conn);
DataSet ds = new DataSet();
SqlCom.Fill(ds,"agent");
DataView dv = new DataView();
dv = ds.Tables["agent"].DefaultView;
conn.Close();
if ((DG1.Attributes["SortExpression"] != "")&&(DG1.Attributes["SortExpression"] != null))
dv.Sort = DG1.Attributes["SortExpression"] + " " + DG1.Attributes["SortDirection"];
DG1.DataSource = dv;
DG1.DataBind();
    }

解决方案 »

  1.   

    dv = ds.Tables["agent"].DefaultView;
    改成
    dv = ds.Tables[0].DefaultView;
    试试
      

  2.   

    使用SqlDataAdapter好像不用在打开关闭数据库了
      

  3.   

    dv.Table = ds.Tables["agent"].DefaultView; 这样应该可以了
      

  4.   

    try thisprivate void BindData()
            {
    ///connect to database
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["DataConn2"];
    conn.Open();
    SqlDataAdapter SqlCom = new SqlDataAdapter("select top 2 * from agent",conn);
    DataSet ds = new DataSet();
    SqlCom.Fill(ds,"agent");
    DataTable dt = new DataTable();
    dt = ds.Tables["agent"];
    conn.Close();
    if ((DG1.Attributes["SortExpression"] != "")&&(DG1.Attributes["SortExpression"] != null))
    dv.Sort = DG1.Attributes["SortExpression"] + " " + DG1.Attributes["SortDirection"];
    DG1.DataSource =dt;
    DG1.DataBind();
           }