0

在我网站的主页上,我从我的数据库中的一个表中发布元素。如果我单击其中一个元素,它会将我带到基于该记录 ID 的页面。例如,在我的 default.aspx 页面上,我使用 datalist 控件列出了我的表中的记录。每条记录都充当一个超链接,将您带到 Places.aspx?ID=(记录号)。现在,这些页面中的每一个都需要能够插入特定于该页面的评论。我已经设置了一个评论框并且运行良好。我什至可以让它拉出特定于该页面的评论。我的问题是试图让页面为该特定页面插入评论。我假设我需要能够使用从用于创建 places.aspx?ID=(record number) 页面的 default.aspx 页面传递的记录号。这是我的 places.aspx 代码:

protected void submitButton_Click(object sender, EventArgs e)
{
    string constr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\TravelJoansDB.accdb;";
    string cmdstr = "INSERT INTO Comments(commentText,datePosted,personName,postID) VALUES (@txtComments, @datePosted, @personName, @postID)";
    OleDbConnection con = new OleDbConnection(constr);
    OleDbCommand com = new OleDbCommand(cmdstr, con);
    TextBox tComments = (TextBox)FormView1.FindControl("txtComments");
    HiddenField tDate = (HiddenField)FormView1.FindControl("hidTimeDate");
    TextBox tName = (TextBox)FormView1.FindControl("txtName");

    con.Open();
    com.Parameters.AddWithValue("@txtComments", tComments.Text);
    com.Parameters.AddWithValue("@datePosted", DateTime.Now.ToString());
    com.Parameters.AddWithValue("@personName", tName.Text);
    com.Parameters.AddWithValue("@postID",
    com.ExecuteNonQuery();
    con.Close();
}

我意识到代码还没有完成,但这就是我希望你们帮助的地方。(是的,我来自美国南部。我什至不知道我应该声明什么类型的变量,是整数还是什么。

这是 ASP:

<asp:AccessDataSource ID="AccessDataSource2" runat="server" 
        DataFile="~/App_Data/TravelJoansDB.accdb" 
        SelectCommand="SELECT * FROM [Comments] WHERE postID=@ID"
        InsertCommand="INSERT INTO [Comments] (commentText, datePosted, personName, postID) VALUES (?, ?, ?, ?)" >
        <SelectParameters>
            <asp:QueryStringParameter Name="ID" QueryStringField="ID" />
        </SelectParameters>
        <InsertParameters>
            <asp:Parameter Name="ID" Type="Int32" />
            <asp:Parameter Name="commentText" Type="String" />
            <asp:Parameter Name="datePosted" Type="DateTime" />
            <asp:Parameter Name="personName" Type="String" />
        </InsertParameters>
    </asp:AccessDataSource>
4

1 回答 1

0

您正在寻找int.Parse(Request.QueryString["id"])

如果它不在查询字符串中,或​​者它不是整数,这将引发异常。

于 2013-08-26T02:10:59.673 回答