Page_Load上方有以下代碼
public DataTable dtDetail=new DataTable();Page_Load中以下代碼
private void Page_Load(object sender, System.EventArgs e)
{
// Initial
if (!IsPostBack)
{
InitdtDetail();
}
}InitdtDetail中以下代碼
private void InitdtDetail()
{
DataColumn dcDetail; //Add Column CUST_ID
dcDetail=new DataColumn();
dcDetail.DataType=System.Type.GetType("System.String");
dcDetail.Caption="CUST_ID";
dcDetail.ColumnName="CUST_ID";
dtDetail.Columns.Add(dcDetail);
}另一個函數中有以下代碼:
private bool ValidateHdDetail()
{
bool blnValidation=true;
string strCust_ID="CC0005"; DataRow drowd = dtDetail.NewRow();
drowd["CUST_ID"] = strCust_ID;
dtDetail.Rows.Add(drowd); return blnValidation;
}運行到drowd["CUST_ID"] = strCust_ID;這句出錯,“資料行 'CUST_ID' 不屬於資料表 。”需要怎麼修改代碼??我知道兩段代碼可以合併在一起,但是由於這是簡化了代碼,實際需求中ValidateHdDetail比較複雜。為了通用,只能將兩段代碼分開寫。
public DataTable dtDetail=new DataTable();Page_Load中以下代碼
private void Page_Load(object sender, System.EventArgs e)
{
// Initial
if (!IsPostBack)
{
InitdtDetail();
}
}InitdtDetail中以下代碼
private void InitdtDetail()
{
DataColumn dcDetail; //Add Column CUST_ID
dcDetail=new DataColumn();
dcDetail.DataType=System.Type.GetType("System.String");
dcDetail.Caption="CUST_ID";
dcDetail.ColumnName="CUST_ID";
dtDetail.Columns.Add(dcDetail);
}另一個函數中有以下代碼:
private bool ValidateHdDetail()
{
bool blnValidation=true;
string strCust_ID="CC0005"; DataRow drowd = dtDetail.NewRow();
drowd["CUST_ID"] = strCust_ID;
dtDetail.Rows.Add(drowd); return blnValidation;
}運行到drowd["CUST_ID"] = strCust_ID;這句出錯,“資料行 'CUST_ID' 不屬於資料表 。”需要怎麼修改代碼??我知道兩段代碼可以合併在一起,但是由於這是簡化了代碼,實際需求中ValidateHdDetail比較複雜。為了通用,只能將兩段代碼分開寫。
程序会先调用
public DataTable dtDetail = new DataTable();
所以再执行
ValidateHdDetail这时候dtDetail 是个空表
private void Page_Load(object sender, System.EventArgs e)
{
// Initial
if (!IsPostBack)
{
InitdtDetail();
ViewState["dtDetail"] = dtDetail;
}
else
{
dtDetail = ViewState["dtDetail"] as DataTable;
}
}
private void btnOK_Click(object sender, System.EventArgs e)
{
if (ValidateHdDetail())
{
this.DataGridQuery.DataSource = dtDetail.DefaultView; this.DataGridQuery.DataBind();
}
}運行到
this.DataGridQuery.DataSource = dtDetail.DefaultView;
這句時出現錯誤提示:
並未將物件參考設定為物件的執行個體