原始碼:
Function_A 初始化ComboBox內容選擇值
DataTable dt=new DataTable("ExchangeRateType");
dt.Columns.Add("en", typeof(Int16));
dt.Columns.Add("zh", typeof(string));
dt.Rows.Add("0", "×(乘)");
dt.Rows.Add("1", "÷(除)");
cbo_ExchangeRateType.DisplayMember = "zh";
cbo_ExchangeRateType.ValueMember = "en";
cbo_ExchangeRateType.DataSource = dt;
cbo_ExchangeRateUSDType.DisplayMember = "zh";
cbo_ExchangeRateUSDType.ValueMember = "en";
cbo_ExchangeRateUSDType.DataSource = dt.DefaultView ;
Function_B 從資料庫撈資料
dt = GetDataSet(OriginFindQry).Tables[0].Copy();
dt.TableName = _TblName;
if (ds.Tables.Contains(_TblName))
{
ds.Tables[_TblName].Dispose();
ds.Tables.Remove(_TblName);
}
ds.Tables.Add(dt);
Function_C 為每個控制項DataBinding
foreach (Control item in this.tableLayoutPanel1.Controls)
{
item.DataBindings.Clear();
}
txt_CustomerOrderNo.DataBindings.Clear();
txt_ExchangeRate.DataBindings.Clear();
txt_ExchangeRateUSD.DataBindings.Clear();
cbo_ExchangeRateType.DataBindings.Clear();
cbo_ExchangeRateUSDType.DataBindings.Clear();
bs_tblT訂單統計資料表.DataMember = null;
bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
bs_tblT訂單統計資料表.DataMember = _TblName;
bs_tblT訂單統計資料表.DataSource = ds;
this.bindingNavigator1.BindingSource = bs_tblT訂單統計資料表;
dataGridView1.DataSource = bs_tblT訂單統計資料表;
cbo_ExchangeRateType.DataBindings.Add("SelectedValue", bs_tblT訂單統計資料表, "ExchangeRateType");
cbo_ExchangeRateUSDType.DataBindings.Add("SelectedValue", bs_tblT訂單統計資料表, "ExchangeRateUSDType");
問題: 紫色底為錯誤發生點
(1)錯誤訊息:
bs_tblT訂單統計資料表.DataMember = null;
bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
========
(2)錯誤訊息:
//bs_tblT訂單統計資料表.DataMember = null;
bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
========
(3)錯誤訊息: 無法清除這個清單
//bs_tblT訂單統計資料表.DataMember = null;
//bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
原因:
解決:
cbo_ExchangeRateType.DataBindings.Clear();
參考:
[除錯] 無法繫結至 DataSource 上的屬性或欄位 或 無法清除這個清單
疑難排解例外狀況:System.InvalidCastException
InvalidCastException 類別
关于模板控件如何实现多数据源绑定的问题
沒有留言:
張貼留言