2012-03-02 7 views
2

申し訳ありませんが、私は簡単な質問がありますが、私はそれを理解することができませんでした。Visual Studio 2010とASP.NETを使用してSQL Serverに行を挿入

だけでいくつかの簡単な詳細:私は、ASP.NET、VBでのVisual Studio 2010を使用して、私はASP.NETを使用してウェブサイトを作成していると私は、メーリングリストのデータベースを持っている私のデータベース

としてSQL Serverを使用しています私はTextBoxと息子ボタンである特定のフィールド(名前、電子メール、電話番号)を取り込むメーリングリストページに追加しました。送信ボタンをクリックすると、これらのテキストフィールドの現在の値を取得し、データベースに追加します。

データベースに追加する際に機能するDetailedViewを使用して作成しましたが、挿入後に別のページにリダイレクトする必要があります。

私の質問は基本的に、TextBoxから値を取り込んでデータベースに挿入する方法、または、DetailedViewで新しい行を挿入した後に別のページにリダイレクトする方法です。ここで

が.aspxのファイルのためと私のコードですが、それはテキストボックスのと詳細ビュー

<p class=whiteMail> 
    First Name: <asp:TextBox ID="FirstName" runat="server"></asp:TextBox> <br /> 
    Last Name: <asp:TextBox ID="LastName" runat="server"></asp:TextBox> <br /> 
    E-Mail: <asp:TextBox ID="Email" runat="server"></asp:TextBox> <br /> 
    Phone Number: <asp:TextBox ID="PhoneNumber" runat="server"></asp:TextBox> <br /> 

    <asp:Button ID="Submit" runat="server" Text="Button" /> 
    <br /> 

    <asp:DetailsView ID="DetailsView2" runat="server" Height="50px" Width="125px" 
     DataSourceID="SqlDataSource1" AutoGenerateRows="False" CellPadding="4" 
     DataKeyNames="FirstName,PhoneNum,LastName" DefaultMode="Insert" 
     ForeColor="#333333" GridLines="None"> 
     <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
     <CommandRowStyle BackColor="#E2DED6" Font-Bold="True" /> 
     <EditRowStyle BackColor="#999999" /> 
     <FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" /> 
     <Fields> 
      <asp:BoundField DataField="FirstName" HeaderText="First Name" ReadOnly="True" 
       SortExpression="FirstName" /> 
      <asp:BoundField DataField="LastName" HeaderText="Last Name" ReadOnly="True" 
       SortExpression="LastName" /> 
      <asp:BoundField DataField="PhoneNum" HeaderText="Phone Number" ReadOnly="True" 
       SortExpression="PhoneNum" /> 
      <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" /> 
      <asp:CommandField ShowCancelButton="False" ShowInsertButton="True" /> 
     </Fields> 
     <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
     <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
    </asp:DetailsView> 

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:Database1ConnectionString2 %>" 
     DeleteCommand="DELETE FROM [MailList] WHERE [FirstName] = @FirstName AND [PhoneNum] = @PhoneNum AND [LastName] = @LastName" 
     InsertCommand="INSERT INTO [MailList] ([FirstName], [PhoneNum], [Email], [LastName]) VALUES (@FirstName, @PhoneNum, @Email, @LastName)" 
     SelectCommand="SELECT [FirstName], [PhoneNum], [Email], [LastName] FROM [MailList]" 
     UpdateCommand="UPDATE [MailList] SET [Email] = @Email WHERE [FirstName] = @FirstName AND [PhoneNum] = @PhoneNum AND [LastName] = @LastName"> 
     <DeleteParameters> 
      <asp:Parameter Name="FirstName" Type="String" /> 
      <asp:Parameter Name="PhoneNum" Type="String" /> 
      <asp:Parameter Name="LastName" Type="String" /> 
     </DeleteParameters> 
     <InsertParameters> 
      <asp:Parameter Name="FirstName" Type="String" /> 
      <asp:Parameter Name="PhoneNum" Type="String" /> 
      <asp:Parameter Name="Email" Type="String" /> 
      <asp:Parameter Name="LastName" Type="String" /> 
     </InsertParameters> 
     <UpdateParameters> 
      <asp:Parameter Name="Email" Type="String" /> 
      <asp:Parameter Name="FirstName" Type="String" /> 
      <asp:Parameter Name="PhoneNum" Type="String" /> 
      <asp:Parameter Name="LastName" Type="String" /> 
     </UpdateParameters> 
    </asp:SqlDataSource> 

    <br /> 
</p> 

そして、ここでは両方ともの.vbコード

Public Class add 
Inherits System.Web.UI.Page 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

End Sub 


Protected Sub Submit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Submit.Click 
    Dim strURL As String = "message.aspx?firstname=" & FirstName.Text & "&lastname=" & LastName.Text() 

    Response.Redirect(strURL) 
End Sub 

は、任意のヘルプや提案ますですましたbe well

答えて

1

私がよく理解しているかどうかはわかりませんが、あなたのアプローチが正しくないと思います。なぜコードの先頭にテキストボックスを使用しているのですか?

DetailsViewの全機能を使用することで、好きなものを実現できます。私は単にデフォルトを使用

Protected Sub DetailsView1_ItemUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdatedEventArgs) Handles DetailsView1.ItemUpdated 
    EndEditing() 
End Sub 

Protected Sub DetailsView1_ItemInserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewInsertedEventArgs) Handles DetailsView1.ItemInserted 
    EndEditing() 
End Sub 

Private Sub EndEditing() 
    Response.Redirect("Default.aspx") 
End Sub 

<asp:DetailsView ID="DetailsView2" runat="server" Height="50px" Width="125px" 
    DataSourceID="SqlDataSource1" AutoGenerateRows="False" CellPadding="4" 
    DataKeyNames="FirstName,PhoneNum,LastName" DefaultMode="Insert" 
    ForeColor="#333333" GridLines="None"> 
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
    <CommandRowStyle BackColor="#E2DED6" Font-Bold="True" /> 
    <EditRowStyle BackColor="#999999" /> 
    <FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" /> 
    <Fields> 
     <asp:TemplateField HeaderText="FirstName" SortExpression="FirstName"> 
     <ItemTemplate> 
      <asp:Label ID="Label1" runat="server" 
        Text='<%# Bind("FirstName") %>'></asp:Label> 
     </ItemTemplate> 
     <EditItemTemplate> 
      <asp:TextBox ID="TextBox1" runat="server" 
        Text='<%# Bind("FirstName") %>'></asp:TextBox> 
     </EditItemTemplate> 
     <InsertItemTemplate> 
      <asp:TextBox ID="TextBox1" runat="server" 
        Text='<%# Bind("FirstName") %>'></asp:TextBox> 
     </InsertItemTemplate> 
    </asp:TemplateField> 
     <asp:TemplateField HeaderText="LastName" SortExpression="LastName"> 
     <ItemTemplate> 
      <asp:Label ID="Label2" runat="server" 
        Text='<%# Bind("LastName") %>'></asp:Label> 
     </ItemTemplate> 
     <EditItemTemplate> 
      <asp:TextBox ID="TextBox2" runat="server" 
        Text='<%# Bind("LastName") %>'></asp:TextBox> 
     </EditItemTemplate> 
     <InsertItemTemplate> 
      <asp:TextBox ID="TextBox2" runat="server" 
        Text='<%# Bind("LastName") %>'></asp:TextBox> 
     </InsertItemTemplate> 
    </asp:TemplateField> 
     <asp:TemplateField HeaderText="PhoneNum" SortExpression="PhoneNum"> 
     <ItemTemplate> 
      <asp:Label ID="Label3" runat="server" 
        Text='<%# Bind("PhoneNum") %>'></asp:Label> 
     </ItemTemplate> 
     <EditItemTemplate> 
      <asp:TextBox ID="TextBox3" runat="server" 
        Text='<%# Bind("PhoneNum") %>'></asp:TextBox> 
     </EditItemTemplate> 
     <InsertItemTemplate> 
      <asp:TextBox ID="TextBox3" runat="server" 
        Text='<%# Bind("PhoneNum") %>'></asp:TextBox> 
     </InsertItemTemplate> 
     </asp:TemplateField> 
      <asp:TemplateField HeaderText="Email" SortExpression="Email"> 
     <ItemTemplate> 
      <asp:Label ID="Label4" runat="server" 
        Text='<%# Bind("Email") %>'></asp:Label> 
     </ItemTemplate> 
     <EditItemTemplate> 
      <asp:TextBox ID="TextBox4" runat="server" 
        Text='<%# Bind("Email") %>'></asp:TextBox> 
     </EditItemTemplate> 
     <InsertItemTemplate> 
      <asp:TextBox ID="TextBox4" runat="server" 
        Text='<%# Bind("Email") %>'></asp:TextBox> 
     </InsertItemTemplate> 
     </asp:TemplateField> 
     <asp:CommandField ShowCancelButton="False" ShowEditButton="True" ShowInsertButton="True" /> 
    </Fields> 
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
</asp:DetailsView> 

そして、あなたはこのようなリダイレクトを行うためたDetailsViewのイベントを使用することができます後ろに、あなたのコード:たとえば、あなたがこのような何かを行うことができますリダイレクトの場合は.aspxですが、他のページを使用してリダイレクトできます。

これがあなたを助けてくれることを願っています。

+0

これは私が探していたものです。 DetailsViewのそれらのフィールドにあったものを取得する方法を知っていますか?私はそれらの値を次のページに渡したかったので。 – Puresilence

+0

私はそれを得た。助けてくれてありがとう! – Puresilence

関連する問題