1
프로그램을 작성한 후 단추를 누르면 프로그램이 충돌합니다. 여기 버튼의 코드입니다 :StackOverFlow on 응용 프로그램 시작 지점
Debuging에 유래를 (위치는 주석에 표시되어 있습니다), 여기에 전체 코드 반환 _alRecord.WriteXml(@".\alRecord.xml", XmlWriteMode.WriteSchema);
:
private string alFile = @".\alRecord.xml";
public DataTable alRecord;
public DataTable _alRecord
{
get
{ //location of stackoverflow
if (_alRecord == null)
{
alRecord = new DataTable();
if (File.Exists(alFile))
{ _alRecord.ReadXml(alFile); }
else
{ InitDataTable2(_alRecord); }
}
return _alRecord;
}
}
private void InitDataTable2(DataTable table)
{
table.TableName = "AlTable";
table.Columns.Add("ID", typeof(int));
table.Columns.Add("sun", typeof(bool));
table.Columns.Add("mon", typeof(bool));
table.Columns.Add("tue", typeof(bool));
table.Columns.Add("wed", typeof(bool));
table.Columns.Add("thu", typeof(bool));
table.Columns.Add("fri", typeof(bool));
table.Columns.Add("sat", typeof(bool));
table.Columns.Add("doors", typeof(string));
table.Columns.Add("from1", typeof(DateTime));
table.Columns.Add("to1", typeof(DateTime));
table.Columns.Add("from2", typeof(DateTime));
table.Columns.Add("to1", typeof(DateTime));
for (int i = 0; i < 99; i++)
{
var row = alRecord.NewRow();
row["ID"] = i;
row["sun"] = false;
row["mon"] = false;
row["tue"] = false;
row["wed"] = false;
row["thu"] = false;
row["fri"] = false;
row["sat"] = false;
row["doors"] = "";
row["from1"] = "00:01";
row["to1"] = "23:59";
row["from2"] = "00:01";
row["to2"] = "23:59";
alRecord.Rows.Add(row);
}
}
private void alSave_Click(object sender, EventArgs e)
{
_alRecord.WriteXml(@".\alRecord.xml", XmlWriteMode.WriteSchema);
}
추가 할 것입니다. 더 명료하게 만드는 명명 규칙을 사용하는 것이 좋습니다. 포스터에는 컨벤션이있는 것처럼 보이지만 일반적으로 수행되는 작업에서 거꾸로 진행됩니다. 밑줄은 일반적으로 private 멤버 변수를 나타내는 반면 CapitalizedFirstLetters는 일반적으로 속성에 사용됩니다. –
둘 다 감사합니다.) –