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.youkuaiyun.com/luchuanbo/article/details/4430666">http://blog.youkuaiyun.com/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);
}