我似乎無法理解爲什麼我得到:無法解決「未設置對象實例的對象引用」。在DataTable.Rows.CopyTo
「對象引用不設置到對象的實例。」
錯誤在這種情況下:
DataTable utenRomData;
DataSet utenRomSet;
private void InitDataUtenRom()
{
utenRomData = new DataTable("GjesterUtenRom");
utenRomSet = new DataSet();
utenRomData.Columns.Add(new DataColumn("FulltNavn"));
utenRomData.Columns.Add(new DataColumn("StartDato"));
utenRomData.Columns.Add(new DataColumn("AntallDager"));
utenRomSet.Tables.Add(utenRomData);
if (File.Exists("gjesteInfo.xml"))
utenRomSet.ReadXml("gjesteInfo.xml");
utenRomData.Rows.Add(gjestenavnInput.Text, datoInnsjekk.Text, antallDager.Text);
utenRomSet.Merge(utenRomData);
utenRomSet.WriteXml("gjesteInfo.xml");
}
DataTable medRomData;
DataSet medRomSet;
private void InitDataMedRom()
{
medRomData = new DataTable("GjesterMedRom");
medRomSet = new DataSet();
medRomData.Columns.Add(new DataColumn("FulltNavn"));
medRomData.Columns.Add(new DataColumn("StartDato"));
medRomData.Columns.Add(new DataColumn("AntallDager"));
medRomSet.Tables.Add(medRomData);
if (File.Exists("gjesteInfo.xml"))
medRomSet.ReadXml("gjesteInfo.xml");
DataRow[] temp = new DataRow[medRomData.Rows.Count];
utenRomData.Rows.CopyTo(temp, 0); <- This is where I get the error!
medRomSet.Merge(utenRomData);
medRomSet.WriteXml("gjesteInfo.xml");
}
我試圖擺脫表utenRomData內容表medRomData用拖放。有什麼想法嗎?
如何在InitDataMedRom()中實例化utenRomData?
只有兩種選擇:'utenRomData'是'null' ,或者'utenRomData.Rows'爲'null'。 (如果'temp'爲'null',你會得到'ArgumentNullException',而不是'NullReferenceException'。)你不會在初始化'utenRomData'的地方顯示代碼,所以你必須檢查它是哪一個。 – dtb 2013-04-24 10:09:57
我更新了代碼。 :) – Praise 2013-04-24 10:20:00
您是否檢查了medRomData中有多少行?如果它爲零(因爲該文件不存在或因爲ReadXml添加了不同的表格)當您嘗試將許多行復制到空數組數據行時會發生什麼? – Steve 2013-04-24 10:20:15