編輯:對不起,我對這件事有點瞎了,我在「問題」下面發佈了「解決方案」。C#使用單獨的方法將行/列添加到現有的DataTable中
ORIGINAL:
我似乎無法得到這個問題的背後(上SO搜索了很多後偶數): 我有,我想「準備」的人口數據,像這樣一個DataTable對象:
我的模型類屬性(類名 「DataMdl」):prepdatatable在一個視圖模型法
private static DataTable _datatbl;
public DataTable datatbl
{
get { return _datatbl; }
set
{
_datatbl = value;
OnPropertyChanged(new PropertyChangedEventArgs("datatbl"));
}
}
電話:
prepdatatable(DataMdl.datatbl, 5, 9)
我prepdatatable方法:
private void prepdatatable(DataTable dt, int rowcount, int colcount)
{
dt = new DataTable();
int i = 0;
for (i = 0; i < colcount; i++)
{
dt.Columns.Add("col" + i);
}
for (i = 0; i < rowcount; i++)
{
dt.Rows.Add("row" + i);
}
}
調用上面的方法我嘗試填充的方法將DataTable與
DataMdl.datatbl.Rows[0][0] = "..."
DataMdl.datatbl.Rows[0][1] = "..."
...
DataMdl.datatbl.Rows[1][0] = "..."
...
and so on
稱爲prepdatatable在這種情況下後,我得到DataMdl.datatbl一個NullReferenceException 。
當我嘗試初始化DataMdl.datatbl的prepdatatable之外,我裏面得到一個NullReferenceException的「DT」裏面prepdatatable。
「解決方案」: 只是要prepdatatable返回一個DataTable,而不是無效,然後將其值賦給屬性DataMdl.datatbl:
private DataTable prepdatatable(int rowcount, int colcount)
{
var dt = new DataTable();
int i = 0;
for (i = 0; i < colcount; i++)
{
dt.Columns.Add("col" + i);
}
for (i = 0; i < rowcount; i++)
{
dt.Rows.Add("row" + i);
}
return dt;
}
和
DataMdl.datatbl = prepdatatable(5, 9);
謝謝你的關心。
你從哪裏得到這個例外?是'datatbl = new DataTable();'在將表傳遞給方法之前初始化表的唯一位置? – 2014-09-10 12:39:50
您正在正確添加行和列。我認爲你正在傳遞'null'而不是數據表到這個方法 – 2014-09-10 12:40:50
_「編輯:」datatbl「是我的模型類的一個屬性。」然後顯示相關的真實代碼而不是工作的代碼。我們無法解決不存在的問題。 – 2014-09-10 12:42:06