读书人

拜托大伙儿帮看看

发布时间: 2012-11-08 08:48:12 作者: rapoo

拜托大家帮看看
protected void Button1_Click(object sender, EventArgs e)
{

DataTable newdtb = new DataTable();
newdtb.Columns.Add("st_id", typeof(int));
newdtb.Columns.Add("st_name", typeof(string));
newdtb.Columns.Add("ST_Price", typeof(string));
newdtb.Columns.Add("ST_Sales", typeof(string));
newdtb.Columns.Add("ST_Type", typeof(string));

newdtb.Columns["st_id"].AutoIncrement = true;

foreach (GridViewRow item in GridView1.Rows)
{
CheckBox chkID = (CheckBox)item.FindControl("CheckBox1");
if (chkID.Checked == true && item.RowType == DataControlRowType.DataRow)
{


DataRow newRow = newdtb.NewRow();
try
{

newRow["st_id"] = Convert.ToInt32(item.Cells[1].Text);
}
catch (Exception)
{

throw;\\烦死了老是输入字符串不正确,数据库内表id是int类型呀
}
newRow["st_name"] = item.Cells[2].Text.ToString();
newRow["ST_Price"] = item.Cells[3].Text.ToString();
newRow["ST_Sales"] = item.Cells[4].Text.ToString();
newRow["ST_Type"] = item.Cells[5].Text.ToString();
newdtb.Rows.Add(newRow);
}




}
GridView2.DataSource = newdtb;
GridView2.DataBind();
}

[解决办法]
newRow["st_id"] = Convert.ToInt32(item.Cells[0].Text);
应该是从0开始算起。
[解决办法]
newRow["st_id"] = Convert.ToInt32(item.Cells[1].Text);

-->你调试一下,看看Convert.ToInt32(item.Cells[1].Text) 得到的值是id还是name嘛~~

如果Convert.ToInt32(item.Cells[1].Text) 是id,那证明Convert.ToInt32换成int失败,
你换一种转换成int类型的方式吧!int.parse好像可以~~有时Convert.ToInt32转换无效

读书人网 >C#

热点推荐