好的,所以我刚刚编写了自己的“向数据库添加一本书”的ASP.net页面,如下所示:
<div class="addbook"><br />If you feel that we've forgotten a book that you love, please fill out this form below to help us keep the site fresh and dynamic! <h3>Title:</h3><asp:TextBox ID="tb_booktitle" runat="server"></asp:TextBox> <h3>Author:</h3><asp:TextBox ID="tb_bookauthor" runat="server"></asp:TextBox> <h3>Publication Date:</h3><asp:TextBox ID="tb_bookpubyear" runat="server" ></asp:TextBox> <asp:CompareValidator ID="CompareValidatorTextBox1" runat="server" ControlToValidate="tb_bookpubyear" Type="Date" Operator="DataTypeCheck" ErrorMessage="Date must be in the DD/MM/YYYY format)" ForeColor="Red" /> <h3>Number of Pages:</h3><asp:TextBox ID="tb_bookpages" runat="server"></asp:TextBox><asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="tb_bookpages" ErrorMessage="Please enter a number." ForeColor="Red" MaximumValue="9999999" MinimumValue="1" SetFocusOnError="True"></asp:RangeValidator> <h3>Publisher:</h3><asp:TextBox ID="tb_publisher" runat="server"></asp:TextBox> <h3>Book Cover:</h3> <asp:FileUpload ID="fu_picture" runat="server" /> <h3>Your Rating:</h3> <p> <asp:RadioButtonList ID="rbl_Stars" runat="server" RepeatDirection="Horizontal" Width="142px"> <asp:ListItem>1</asp:ListItem> <asp:ListItem>2</asp:ListItem> <asp:ListItem>3</asp:ListItem> <asp:ListItem>4</asp:ListItem> <asp:ListItem>5</asp:ListItem> </asp:RadioButtonList> </p> <p> <asp:Button ID="btn_submission" runat="server" Text="Upload Book!" /> </p>
背后的代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load End Sub Protected Sub btn_submission_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_submission.Click Dim myGUID = Guid.NewGuid() Dim newFileName As String = myGUID.ToString() & ".jpg" Dim fileLocationOnServerHardDisk = Request.MapPath("img/thumb") & "/" & newFileName fu_picture.SaveAs(fileLocationOnServerHardDisk) Dim oleDbConn As New OleDb.OleDbConnection(ConfigurationManager.ConnectionStrings("BookMeetConnString").ConnectionString) Dim SqlString As String = "Insert into booklist(Title,Author,PublicationDate,Pages,Publisher,imgurl,AverageRating) Values (@f1,@f2,@f3,@f4,@f5,@f6,@f7)" Dim cmd As OleDbCommand = New OleDbCommand(SqlString, oleDbConn) cmd.CommandType = CommandType.Text cmd.Parameters.AddWithValue("@f1", tb_booktitle.Text) cmd.Parameters.AddWithValue("@f2", tb_bookauthor.Text) cmd.Parameters.AddWithValue("@f3", tb_bookpubyear.Text) cmd.Parameters.AddWithValue("@f4", tb_bookpages.Text) cmd.Parameters.AddWithValue("@f5", tb_publisher.Text) cmd.Parameters.AddWithValue("@f6", "img/thumb/" & newFileName) cmd.Parameters.AddWithValue("@f7", rbl_Stars.SelectedValue) oleDbConn.Open() cmd.ExecuteNonQuery() Response.Redirect("detail.aspx?ID={0}") End Sub Protected Sub rbl_Stars_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles rbl_Stars.SelectedIndexChanged End Sub End Class
正如您在上面的代码中看到的,一旦建立了与数据库的连接,我想重定向到detail.aspx(这是一个显示来自数据库和相关内容的单个书记录的页面)一个查询字符串,用于显示刚刚添加的记录。但是我收到了这样的错误:
输入字符串的格式不正确。描述:未处理 在执行当前Web请求期间发生异常。 请查看堆栈跟踪以获取有关错误的更多信息 它起源于代码。
异常详细信息:System.FormatException:输入字符串不在 格式正确。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[FormatException:输入字符串的格式不正确。]
System.Number.StringToNumber(String str,NumberStyles选项, NumberBuffer&安培; number,NumberFormatInfo info,Boolean parseDecimal) +10722195 System.Number.ParseInt32(String s,NumberStyles style,NumberFormatInfo info)+145
System.String.System.IConvertible.ToInt32(IFormatProvider provider) +46 System.Convert.ChangeType(对象值,TypeCode typeCode,IFormatProvider提供者)+297
System.Web.UI.WebControls.Parameter.GetValue(Object value,String defaultValue,TypeCode type,Boolean convertEmptyStringToNull,Boolean ignoreNullableTypeChanges)+126
System.Web.UI.WebControls.Parameter.GetValue(Object value,Boolean ignoreNullableTypeChanges)+63
System.Web.UI.WebControls.Parameter.get_ParameterValue()+40
System.Web.UI.WebControls.ParameterCollection.GetValues(HttpContext的 上下文,控制控制)+247
System.Web.UI.WebControls.SqlDataSourceView.InitializeParameters(的DbCommand command,ParameterCollection参数,IDictionary exclusionList) +257 System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments 参数)+589
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments 参数,DataSourceViewSelectCallback回调)+21
System.Web.UI.WebControls.DataBoundControl.PerformSelect()+138
System.Web.UI.WebControls.BaseDataBoundControl.DataBind()+30
System.Web.UI.WebControls.GridView.DataBind()+ 4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()+ 105 System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +75 System.Web.UI.Control.EnsureChildControls()+83 System.Web.UI.Control.PreRenderRecursiveInternal()+42
System.Web.UI.Control.PreRenderRecursiveInternal()+ 168 8 System.Web.UI.Control.PreRenderRecursiveInternal()+ 168 8 System.Web.UI.Control.PreRenderRecursiveInternal()+ 168 8 System.Web.UI.Control.PreRenderRecursiveInternal()+ 168 8 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 974
我将如何实现我想要做的事情?
答案 0 :(得分:1)
为什么不创建一个存储过程,其输出参数为新插入的书籍的id,然后执行以下操作
If outputparam.value isnot nothing then
Response.Redirect(String.Format("detail.aspx?ID={0}",outputparam.value)
end if
请查看此网址以获取更多信息。