这个问题是在开发新闻发布系统时附件添加上遇到的,由于刚接触自定义DataTable这一块,对其运用还不熟,搞了好长时间,才自己慢慢探讨出来了........
       具体运用方面及好处等以后再总结,具体代码如下:

static DataTable dt=createtb(); //必须要用static
DataTable dt_accessory=dt;  //定义全局的DataTable
//定义一个静态方法自定义一个DataTable
public static DataTable createtb()
  {
   DataTable dt_accessory=new DataTable("Accessory");
   DataColumn accessoryID=new DataColumn("AccessoryID",typeof(int));
   accessoryID.AutoIncrement=true;
   accessoryID.AutoIncrementSeed=1;
   accessoryID.AutoIncrementStep=1;
   accessoryID.ReadOnly=true;
   
   DataColumn accessoryName=new DataColumn("AccessoryName",typeof(string));
   DataColumn accessoryType=new DataColumn("AccessoryType",typeof(string));
   DataColumn accessoryPath=new DataColumn("AccessoryPath",typeof(string));   
   
   dt_accessory.Columns.Add(accessoryID);
   dt_accessory.Columns.Add(accessoryName);
   dt_accessory.Columns.Add(accessoryType);
   dt_accessory.Columns.Add(accessoryPath);
 
   return dt_accessory;
  }
//以下为添加DataRow
private void btnUpload_Click(object sender, System.EventArgs e)
  {
   string fileName="",fileType,filePath;
   fileName=this.File1.PostedFile.FileName;
   filePath=Server.MapPath("upfiles");
    
   fileName=fileName.Substring(fileName.LastIndexOf("\\")+1);
   fileType=fileName.Substring(fileName.LastIndexOf(".")+1);
   
   System.Data.DataRow dr=dt_accessory.NewRow();   
   dr["accessoryName"]=fileName;
   dr["accessoryType"]=fileType;
   dr["accessoryPath"]=filePath+"
\\"+fileName;
   dt_accessory.Rows.Add(dr);
   
  //用个CheckBoxList绑定DataTable
   this.CBLAccessory.DataSource=dt_accessory.DefaultView;
   this.CBLAccessory.DataTextField="AccessoryName";
   this.CBLAccessory.DataValueField="AccessoryID";
   this.CBLAccessory.DataBind();
  }

声明:以上代码属原创,仅供本人参考,请勿乱转!

posted on 2007-05-15 22:57  jalor  阅读(953)  评论(0)    收藏  举报