我有将数据插入数据库的问题。
Dim PostId As Object = DirectCast(Repeater1.FindControl("lblPostId"), Label)
我必须使用 Findcontrol,因为页面无法自动找到 lblPostId。然后我像这样定义 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()
这是 m HTML,标签在 Repeater 内(由 sqldatasource 绑定):
<asp:Label ID="lblPostId" runat="server" Text='<%# Eval("PostId") %>' />
但它返回错误,该Object 变量或未在 PostId 参数上设置变量。我不知道为什么?我该如何解决这个问题?