データベースにデータを挿入するprobelmがあります。
Dim PostId As Object = DirectCast(Repeater1.FindControl("lblPostId"), Label)
ページがlblPostIdを自動的に見つけることができないため、Findcontrolを使用する必要があります。次に、InsertCommandとパラメーターを次のように定義します。
Dim cmd As SqlCommand = conn.CreateCommand()
cmd.CommandText = "INSERT INTO [Comments] ([CommentText], [UserName], [PostId]) VALUES (@CommentText, @UserName, @PostId)"
cmd.Parameters.Add("@PostId", System.Data.SqlDbType.Int).Value = PostId.Text
cmd.Parameters.Add("UserName", System.Data.SqlDbType.NVarChar).Value = Context.User.Identity.Name
cmd.Parameters.Add("CommentText", System.Data.SqlDbType.NText).Value = text.Text
cmd.ExecuteNonQuery()
これはmHTMLであり、ラベルはRepeater内にあります(sqldatasourceによってバインドされています)。
<asp:Label ID="lblPostId" runat="server" Text='<%# Eval("PostId") %>' />
ただし、オブジェクト変数または変数がPostIdパラメーターに設定されていないというエラーが返されます。どうしてか分かりません?どうすればこれを修正できますか?