[原创]读出数据库数据,控制显示长度!


其中的两个现实:
public void BindGrid()
  {
   OleDbConnection myConnection = cn;
   DataSet ds  = new DataSet();
   OleDbDataAdapter adapter  = new OleDbDataAdapter("Select Title,CreateDate from article", myConnection);
   adapter.Fill(ds, "Document");
//这里开始
   for(int i=0;i<ds.Tables[0].Rows.Count;i++)
   {
    if(ds.Tables[0].Rows[i]["Title"].ToString().Length>6)
     ds.Tables[0].Rows[i]["Title"]=CutString(ds.Tables[0].Rows[i]["Title"].ToString(),6);
   }
   MyDataGrid.DataSource = ds.Tables["Document"].DefaultView;
            MyDataGrid.DataBind();
   ShowStats();
  }

#region 字符串截取函数
  public static string CutString(string inputString,int len)
  {


   ASCIIEncoding ascii =  new ASCIIEncoding();
   int tempLen=0;
   string tempString="";
   byte[] s = ascii.GetBytes(inputString);
   for(int i=0;i<s.Length;i++)
   {
    if((int)s[i]==63)
    {
     tempLen+=2;
    }
    else
    {
     tempLen+=1;
    }
               
    try
    {
     tempString+=inputString.Substring(i,1);
    }
    catch
    {
     break;
    }

    if(tempLen>len)
     break;
   }
   //如果截过则加上半个省略号
   byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);
   if(mybyte.Length>len)
    tempString+="…";


   return tempString;
  }
  #endregion

posted on 2004-08-16 16:10  kary  阅读(1824)  评论(10编辑  收藏  举报

导航