将值插入sql server:未声明控件

时间:2015-10-19 16:16:01

标签: asp.net vb.net

标题听起来很简单,但这里有具体细节。

我被交给一个旧网站延伸一点。它是一个VB.NET实现,它是原始编码器的第一个站点 - 因此很多人都可以使用它。

网站摘要:
主页设计,带oAuth登录页面。主页面是记录的分页,并且根据用户是否已登录,显示单独的按钮进行编辑。到目前为止 - 没有那么大的交易,它的确有效。

现在,当我们深入研究编辑页面时,产品所有者希望能够将记录添加到记录中。看起来非常简单,所有其他CRUD都已完成,但实际插入除外。

我在页面底部添加了一个textarea和一个按钮。 insert事件正在运行,虚拟记录正在放入数据库中。

但是当我尝试获取textarea的值时,失败就会发挥作用,进入查询。

<html xmlns="http://www.w3.org/1999/xhtml">
<script language="VB" runat="server" >
Protected Sub NewNoteButton_Click(sender As Object, e As System.EventArgs)
  '    Dim myStringResult As String = NewNoteTextArea.InnerHtml
MsgBox("Here1")
Dim constr As String = ConfigurationManager.ConnectionStrings("XXXXXConnectionString").ConnectionString
Using con As New SqlConnection(constr)
  Using cmd As New SqlCommand("INSERT INTO EasementNote ([RE_Number], [noteuser], [note]) VALUES (@RE_Number, @NoteUser, @Note)")
    cmd.Parameters.AddWithValue("@RE_Number", "test")
    cmd.Parameters.AddWithValue("@NoteUser", "test")
    cmd.Parameters.AddWithValue("@Note", "more testing")
    cmd.Connection = con
    con.Open()
    cmd.ExecuteNonQuery()
    con.Close()
  End Using
End Using
MsgBox("here2")
End Sub
</script>    
 <head runat="server">
   <title></title>
 </head>

这是我有HTML代码的地方

  <asp:TableFooterRow Width="100%">
    <asp:TableCell HorizontalAlign="center" ColumnSpan="2">
      <asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit" />&nbsp;
      <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New" Text="New" />
    </asp:TableCell>
    <asp:TableCell HorizontalAlign="center" ColumnSpan="1">
      <asp:TextBox id="NewNoteTextArea" TextMode="multiline" Columns="40" Rows="3" runat="server" />&nbsp;&nbsp;&nbsp;
      <asp:Button runat="server" ID="NewNoteButton" Text="Insert Note" OnClick="NewNoteButton_Click"/>
    </asp:TableCell>
  </asp:TableFooterRow>

当我尝试获取textarea的值时,我收到了

Error message

我真的很难过为什么我收到此错误消息。顺便说一句 - 页面后面没有代码......不知道为什么,但是没有,但当我添加一个,并将按钮点击事件移动到它时,按钮点击无法解决。

感谢您的光临。

2 个答案:

答案 0 :(得分:3)

由于您的控件位于另一个服务器控件内,您需要使用FindControl来访问代码中的控件,例如

Dim txtNote As TextBox = DirectCast(Me.FormView1.FindControl("NewNoteTextArea"), TextBox) 

答案 1 :(得分:-1)

您应该使用文本框控件的Text属性值,而不是InnerHtml

Dime mySyting as String = NewNoteTextArea.Text