C# 无法将“System.Web.UI.WebControl.TextBox”类型的对象强制转换为“System.IConvertible”类型
当我更新网格中的一行时,我有一个包含书籍详细信息的网格,我无法将“System.Web.UI.WebControls.TextBox”类型的对象强制转换为“System.IConvertible”类型错误。请帮我解决这个错误。价格列是十进制数据类型C# 无法将“System.Web.UI.WebControl.TextBox”类型的对象强制转换为“System.IConvertible”类型,c#,asp.net,C#,Asp.net,当我更新网格中的一行时,我有一个包含书籍详细信息的网格,我无法将“System.Web.UI.WebControls.TextBox”类型的对象强制转换为“System.IConvertible”类型错误。请帮我解决这个错误。价格列是十进制数据类型 protected void grdBookDetails_RowUpdating(object sender, GridViewUpdateEventArgs e) { BookDetailsBEL.BookId = Convert.ToI
protected void grdBookDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
BookDetailsBEL.BookId = Convert.ToInt32(grdBookDetails.DataKeys[e.RowIndex].Value);
BookDetailsBEL.BookName = ((TextBox)(grdBookDetails.Rows[e.RowIndex].FindControl("txtEditBookName"))).ToString();
BookDetailsBEL.Author = ((TextBox)(grdBookDetails.Rows[e.RowIndex].FindControl("txtEditAuthor"))).ToString();
BookDetailsBEL.Publisher = ((TextBox)(grdBookDetails.Rows[e.RowIndex].FindControl("txtEditPublisher"))).ToString();
BookDetailsBEL.Price = Convert.ToDecimal((TextBox)(grdBookDetails.Rows[e.RowIndex].FindControl("txtEditPrice")));
e.Cancel = true;
grdBookDetails.EditIndex = -1;
GetBookDetails();
}
必须使用.Text属性
您试图在设置价格的行上将文本框转换为十进制。您可能希望将文本框的文本转换为十进制。是。你能告诉我怎么做吗?引用。在你将它转换成文本框或使用ToString后发送文本。你在上面的一行中做了完全相同的事情..我按照你说的做了尝试,但我得到的输入字符串在同一行中的格式不正确。你在txtEditPrice中输入了什么?您必须在txtEditPrice中输入数字。您必须将txtEditPrice检查为数字,然后使用Convert.ToDecimal函数我只在txtEditPrice中输入了数字,但不知道为什么会出现此错误。如果有错误,则它们必须与该错误不同。我能看到你的错误吗?
protected void grdBookDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
BookDetailsBEL.BookId = Convert.ToInt32(grdBookDetails.DataKeys[e.RowIndex].Value);
BookDetailsBEL.BookName = ((TextBox)(grdBookDetails.Rows[e.RowIndex].FindControl("txtEditBookName"))).Text.ToString();
BookDetailsBEL.Author = ((TextBox)(grdBookDetails.Rows[e.RowIndex].FindControl("txtEditAuthor"))).Text.ToString();
BookDetailsBEL.Publisher = ((TextBox)(grdBookDetails.Rows[e.RowIndex].FindControl("txtEditPublisher"))).Text.ToString();
BookDetailsBEL.Price = Convert.ToDecimal(((TextBox)(grdBookDetails.Rows[e.RowIndex].FindControl("txtEditPrice"))).Text.ToString());
e.Cancel = true;
grdBookDetails.EditIndex = -1;
GetBookDetails();
}