在我网站的主页上,我从我的数据库中的一个表中发布元素。如果我单击其中一个元素,它会将我带到基于该记录 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>