日志文章

2007年11月15日 11:16:55

关于GridView绑定

做了半年的.NET总算有点小成绩了,目前已有自己的类库了,我会慢慢把自己的代码和大家一起分享!希望大家给点指点,我希望能从大家中吸取教训,还请大家多多知道!最好能优化我的代码!废话不多说了.................
  //table要绑定的表,tableid表的ID唯一值,sqlStr执行的语句,iItemGridView的第iTtem项用"........"替换长字符串
  public void BindGv(GridView gv, string table, string tableid, string sqlStr, int iItem)
  {
    SqlConnection sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConSql"]);
    SqlCommand sqlCom = new SqlCommand();
    SqlDataAdapter sqlDa = new SqlDataAdapter();
    DataSet sqlDs = new DataSet();
    sqlDa.SelectCommand = new SqlCommand(sqlStr, sqlCon);
    sqlCon.Open();
    sqlDa.Fill(sqlDs, table);
    if (sqlDs.Tables.Rows.Count > 0)
    {
      gv.DataSource = sqlDs.Tables;
      gv.DataKeyNames = new string[] { tableid };
      gv.DataBind();
      for (int i = 0; i <= gv.Rows.Count - 1; i++)
      {
        DataRowView sqlDrv;
        string sString;
        if (gv.PageIndex == 0)
        {
          sqlDrv = sqlDs.Tables.DefaultView;
          sString = Convert.ToString(gv.Rows.Cells[iItem].Text);
          gv.Rows.Cells[iItem].Text = SubStr(sString, 20);
        }
        else
        {
          sqlDrv = sqlDs.Tables.DefaultView[i + (1 * gv.PageIndex)];
          sString = Convert.ToString(gv.Rows.Cells[iItem].Text);
          gv.Rows.Cells[iItem].Text = SubStr(sString, 20);
        }
      }
    }
    else
    {
      //绑定空表
      sqlDs.Tables[0].Rows.Add(sqlDs.Tables[0].NewRow());
      gv.DataSource = sqlDs.Tables;
      gv.DataBind();
    }
    sqlCon.Close();
  }
  //用存储过程带参数绑定GridView
  //SqlParameter[] sqlParam = new SqlParameter[1];
  //string username="MadWolferMan";
  //sqlParam[0] = new SqlParameter("@WebMaster", SqlDbType.VarChar, 50);
  //sqlParam[0].Value = username;
  public void BindGv(GridView gv,string spName,params SqlParameter[] sqlParams)
  {
    SqlConnection sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConSql"]);
    SqlDataAdapter sqlDa = new SqlDataAdapter(spName,sqlCon);
    sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure;
    try
    {
      if (sqlParams != null)
      {
        foreach (SqlParameter Param in sqlParams)
        {
          sqlDa.SelectCommand.Parameters.Add(Param);
        }
      }
    }
    catch
    {
      return;
    }
    DataSet sqlDs = new DataSet();
    sqlCon.Open();
    sqlDa.Fill(sqlDs, spName);
    gv.DataSource = sqlDs.Tables[0];
    gv.DataBind();
  }
  //用存储过程不带参数绑定GridView,spName是存储过程名
  public void BindGv(GridView gv, string spName)
  {
    SqlConnection sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConSql"]);
    SqlDataAdapter sqlDa = new SqlDataAdapter(spName, sqlCon);
    sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure;
    DataSet sqlDs = new DataSet();
    sqlCon.Open();
    sqlDa.Fill(sqlDs, spName);
    gv.DataSource = sqlDs.Tables[0];
    gv.DataBind();
  }
  private string SubStr(string sInput, int nLeng)
  {
    if (sInput.Length <= nLeng)
    {
      return sInput;
    }
    string sNewInput = sInput.Substring(0, nLeng);
    sNewInput = sNewInput + "...";
    return sNewInput;
  }

Tags: GridView  

类别: 个人经验 |  评论(1) |  浏览(1504) |  收藏
1楼 [匿名]good 2008年09月11日 12:56:13 Says:
good
发表评论
看不清楚,换一张