现在这样添加二次的时候前面的数据就会被覆盖,不知道怎么写才能添加多行数据到DataTable中。
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ADD_Click(object sender, EventArgs e)
{ DataSet ds = new DataSet();
DataTable TransInfo = new DataTable("TransInfo");
TransInfo.Columns.Add(new DataColumn("lotNo", typeof(string)));
TransInfo.Columns.Add(new DataColumn("carrierCode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("TSPCode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("Port", typeof(string)));
TransInfo.Columns.Add(new DataColumn("ETD", typeof(string)));
TransInfo.Columns.Add(new DataColumn("ETA", typeof(string)));
TransInfo.Columns.Add(new DataColumn("portType", typeof(string)));
TransInfo.Columns.Add(new DataColumn("transMode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("Res", typeof(string)));
ds.Tables.Add(TransInfo);
DataRow dr = ds.Tables["TransInfo"].NewRow();
dr["lotNo"] = this.textLotNo.Text;
dr["carrierCode"] = this.textCarrierCode.Text;
dr["TSPCode"] = this.textTSPCode.Text;
dr["Port"] = this.textPort.Text;
dr["ETD"] = this.textETD.Text;
dr["ETA"] = this.textETA.Text;
dr["portType"] = this.DDLPortType.SelectedValue;
dr["transMode"] = this.DDLTransMode.SelectedValue;
dr["Res"] = this.textRes.Text;
ds.Tables["TransInfo"].Rows.Add(dr);
this.GridView1.DataSource = ds.Tables["TransInfo"];
this.GridView1.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ADD_Click(object sender, EventArgs e)
{ DataSet ds = new DataSet();
DataTable TransInfo = new DataTable("TransInfo");
TransInfo.Columns.Add(new DataColumn("lotNo", typeof(string)));
TransInfo.Columns.Add(new DataColumn("carrierCode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("TSPCode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("Port", typeof(string)));
TransInfo.Columns.Add(new DataColumn("ETD", typeof(string)));
TransInfo.Columns.Add(new DataColumn("ETA", typeof(string)));
TransInfo.Columns.Add(new DataColumn("portType", typeof(string)));
TransInfo.Columns.Add(new DataColumn("transMode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("Res", typeof(string)));
ds.Tables.Add(TransInfo);
DataRow dr = ds.Tables["TransInfo"].NewRow();
dr["lotNo"] = this.textLotNo.Text;
dr["carrierCode"] = this.textCarrierCode.Text;
dr["TSPCode"] = this.textTSPCode.Text;
dr["Port"] = this.textPort.Text;
dr["ETD"] = this.textETD.Text;
dr["ETA"] = this.textETA.Text;
dr["portType"] = this.DDLPortType.SelectedValue;
dr["transMode"] = this.DDLTransMode.SelectedValue;
dr["Res"] = this.textRes.Text;
ds.Tables["TransInfo"].Rows.Add(dr);
this.GridView1.DataSource = ds.Tables["TransInfo"];
this.GridView1.DataBind();
}
DataTable TransInfo = new DataTable("TransInfo");
TransInfo.Columns.Add(new DataColumn("lotNo", typeof(string)));
TransInfo.Columns.Add(new DataColumn("carrierCode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("TSPCode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("Port", typeof(string)));
TransInfo.Columns.Add(new DataColumn("ETD", typeof(string)));
TransInfo.Columns.Add(new DataColumn("ETA", typeof(string)));
TransInfo.Columns.Add(new DataColumn("portType", typeof(string)));
TransInfo.Columns.Add(new DataColumn("transMode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("Res", typeof(string)));
ds.Tables.Add(TransInfo);
---这些你拖个控件写,问题就解决了!(错误的原因是:不能把dataset 每次都new一次,table也new 了一次,要申明为全局变量,这样数据行就会累积~)
每次都是新的xxxx,之前一次的没有引用就被回收了。说得直白一点,你的dataset应该和grid共存亡吧。
DataTable TransInfo = new DataTable("TransInfo");
//上面这两句放在外面声明。 TransInfo.Columns.Add(new DataColumn("lotNo", typeof(string)));
TransInfo.Columns.Add(new DataColumn("carrierCode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("TSPCode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("Port", typeof(string)));
TransInfo.Columns.Add(new DataColumn("ETD", typeof(string)));
TransInfo.Columns.Add(new DataColumn("ETA", typeof(string)));
TransInfo.Columns.Add(new DataColumn("portType", typeof(string)));
TransInfo.Columns.Add(new DataColumn("transMode", typeof(string)));
TransInfo.Columns.Add(new DataColumn("Res", typeof(string)));
ds.Tables.Add(TransInfo);
//这些添加列的可以放在load事件进行初始化。这样就可以解决了。
//因为你每添加一条数据数据集就重新实例化一次前面的数据就没有了。所以
// DataSet ds = new DataSet();
// DataTable TransInfo = new DataTable("TransInfo");
//这两个要当全局变量。列在load时间初始化一次就可以了。
//当然这两个变量可以先申明,再到load事件初始化。