在開發中,我們常用到表類型數據,不同於string,int。。。。那么datatable類型如何定義呢,具體怎么使用呢,代碼如下:
namespace Common.Table { using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Runtime.Serialization; [System.ComponentModel.DesignerCategory("Code")] [SerializableAttribute] public class dataTableName : DataTable { public const string dataTableName_TABLENAME = "dataTableName "; public const string FILE_ID_FIELD = "FILE_ID"; public const string APPLYER_FIELD = "APPLYER"; public const string YEARMONEY_FIELD = "YEARMONEY"; public const string COMPANY_NAME_FIELD = "COMPANY_NAME"; public dataTableName () { BuildDataTables(); } public dataTableName (SerializationInfo info, StreamingContext context) : base(info, context) { } private void BuildDataTables() { this.TableName = dataTableName_TABLENAME ; this.Columns.Add(FILE_ID_FIELD, typeof(System.String)); this.Columns.Add(APPLYER_FIELD, typeof(System.String)); this.Columns.Add(YEARMONEY_FIELD, typeof(System.Double)); this.Columns.Add(COMPANY_NAME_FIELD, typeof(System.String)); } } }
表數據類型已經定義完成,通常表類型中列的名字和列的個數都是和表名都是和數據庫中的表是一致的,這樣方便數據庫的操作
廢話不多說,具體使用方法如下:
public dataTableName table1 //申明一個表類型數據的屬性,方便下面使用 { get { return ((ViewState["table1"] == null) ? null : (dataTableName )ViewState["table1"]); } set { ViewState["table1"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { table1 = new dataTableName ();//頁面加載時要實例化,不然會報‘未將對象引用到實例’的錯誤 } } protected void lbtnSave_Click(object sender, EventArgs e) { DataRow row = null; row = dataTableName.NewRow(); table1 .Rows.Add(row); row[dataTableName .FILE_ID_FIELD] = values1; row[dataTableName .APPLYER_FIELD] = values2;
table1 .AcceptChanges();
datatable.DefaultView.Sort = "columnName desc";//排序 }
調用時的代碼:
System mySystem = new System();
myData = mySystem.mothed(myFamilyInfoTable);
接收參數:
public calss System
{
public DataSet mothed( dataTableName table2);
}
ok,