日期:2014-05-17  浏览次数:20580 次

更新GridView数据时,总提示输入字符串格式不正确,是怎么回事?
我在做gridview的练习,做到更新功能的时候,就出错了,提示输入字符串格式不正确.
我设了断点,取值都能取到,而且取值也正确.我在SQL中创建一个查询,输入我的SQL语句,也能正确执行,为啥这里就是不行呢?


这是我的更新事件:
protected void gvbooks_RowUpdating(object sender, GridViewUpdateEventArgs e)
  {
  //1.得到正在编辑的行的对象
  GridViewRow gvr = gvbooks.Rows[e.RowIndex];
  //2.分别得到TextBox中的值.即要更新的新书名,新作者名,以及相对应的隐藏列图书编号的值
  string newname = (gvr.FindControl("name") as TextBox).Text;
  string newwriter = (gvr.FindControl("writer") as TextBox).Text;
  int HID = int.Parse((gvr.FindControl("HiddenID") as HiddenField).Value);
  //3.拼接SQL语句
  string sql = string.Format("update Books set Name='{}',Writer='{}' where ID={}",newname,newwriter,HID);
  //4创建连接,并更新
  string connstring=ConfigurationManager.ConnectionStrings["Books"].ToString();
  SqlConnection conn = new SqlConnection(connstring);
  SqlCommand comm = new SqlCommand(sql,conn);
  conn.Open();
  comm.ExecuteNonQuery();
  conn.Close();
  //更新完成,退出编辑状态
  gvbooks.EditIndex = -1;
  //重新绑定数据
  Bind();


  }

------解决方案--------------------
string sql = string.Format("update Books set Name='{0}',Writer='{1}' where ID={2}",newname,newwriter,HID);