ssqy表是5級結構的區域樹形表,設了4個字段。在網上找到了浙江省所有的地市、縣市和基層鄉鎮,添加是苦差事,編程事半功倍。在添加第5層的鄉鎮時,使用了以下方法:
private void Savebutton_Click(object sender, EventArgs e)
{
Array myarray = this.textBox1.Text.Split(',');//轉化爲字符串數組
for (int i = 0; i < myarray.Length - 1; i++)
{
DataRow drx = this.dataSet1.Tables["ssqy"].NewRow();
drx["ssqyID"] = DbHelperACE.GetMaxID("ssqyID", "ssqy");
drx["區域名稱"] = myarray.GetValue(i);//數組取值用法
drx["區域層級"] = 5;
drx["上級區域"] = short.Parse(this.comboBox1.SelectedValue.ToString());//combox控件真麻煩,取值需要雙重轉換
this.dataSet1.Tables["ssqy"].Rows.Add(drx);
this.ssqyTableAdapter.Update(this.dataSet1);
}
//this.ssqyTableAdapter.Update(this.dataSet1);//這句放在這裏出錯,不知道爲什麼?
}
DbHelperACE.GetMaxID()方法見 <a target=_blank href="http://blog.csdn.net/luchuanbo/article/details/4430666">http://blog.csdn.net/luchuanbo/article/details/4430666</a>
//修改後的程序
private void Savebutton_Click(object sender, EventArgs e)
{
Array myarray = this.textBox1.Text.Split(',');
short ssqyIDAddOne = short.Parse(DbHelperACE.GetMaxID("ssqyID", "ssqy").ToString());
for (int i = 0; i < myarray.Length - 1; i++)
{
DataRow drx = this.dataSet1.Tables["ssqy"].NewRow();
drx["ssqyID"] = ssqyIDAddOne++;
drx["區域名稱"] = myarray.GetValue(i);
drx["區域層級"] = 5;
drx["上級區域"] = short.Parse(this.comboBox1.SelectedValue.ToString());
this.dataSet1.Tables["ssqy"].Rows.Add(drx);
//this.ssqyTableAdapter.Update(this.dataSet1);
}
this.ssqyTableAdapter.Update(this.dataSet1);
}