更新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);