How would I insert multiple rows of data from one form?

Discussion in 'ASP .Net' started by SSP, Jul 16, 2003.

  1. SSP

    SSP Guest

    Dear ASP.NETers,

    How would I insert multiple rows of data from a web form?

    Are there any tute's and stuff around. Couldn't find any myself.

    Thanks in advance.
    SSP
     
    SSP, Jul 16, 2003
    #1
    1. Advertisements

  2. Hi SSP,

    Yes, you can insert multiple rows of data from a webform.
    simply call sproc, how many number of times you want to
    insert data.

    HTH

    Ravikanth
     
    Ravikanth[MVP], Jul 16, 2003
    #2
    1. Advertisements

  3. SSP

    SSP Guest

    Hi Ravikanth,

    I can't use sproc's unfortunately.

    I am using ACCESS 2000 database.

    Any other methods?

    SSP
     
    SSP, Jul 16, 2003
    #3
  4. SSP

    SSP Guest

    I am half way there to figuring it out.

    So far I have managed to write the following code to insert an array into
    the database.

    Now I have to figure out how to get the relevant DataList fields into an
    array (to insert into the database). Any ideas on creating a dynamic array.

    Code:

    private void Submit1_ServerClick(object sender, System.EventArgs e)
    {
    // Create an Array
    string[,] tippings = new string[,] {{"988", "AUS", "hhhty"}, {"56678",
    "SA", "LfghghjLL"}, {"2367673", "NZ", "dfdfghgfjgfhf"}};
    // Loop through the Array and insert one by one.
    for (int i = 0; i <= tippings.Rank; i++) {
    oleDbInsertCommand2.Parameters["SomeD"].Value = tippings[i, 0];
    oleDbInsertCommand2.Parameters["SomeValue"].Value = tippings[i, 1];
    oleDbInsertCommand2.Parameters["SomeOtherValue"].Value = tippings[i, 2];
    oleDbConnection1.Open();
    oleDbInsertCommand2.ExecuteNonQuery();
    oleDbConnection1.Close();
    }
    }

    SSP
     
    SSP, Jul 20, 2003
    #4
  5. SSP

    Mike S Guest

    I'm not sure if I'm answering the question you are asking, but if you need
    to create a dynamic array (to replace the static dummy array "string[,]
    tippings") that is pretty simple:

    name the all your input fields for each row the same (using a numerical
    sequence for each extra row), when you submit, use something like:

    // for loop
    string[] row = Request.Form[ strPrefix +
    iRowName.ToString() ].ToString.Split(", ");
    AddRowToDB( row );
    //end for loop

    It would be a whole lot easier to do this using a DataGrid, DataSet,
    DataAdapter, and relative Commands for the DataAdapter.

    // Mike

     
    Mike S, Jul 20, 2003
    #5
  6. SSP

    SSP Guest

    OK I tried and I can't still manage it.

    Here's the full scenario:
    What I am building is a footy tipping (pool) competition app. What I am
    trying to do is to allow lots of people to tip the winning team from a list
    of games to be played every week. This schematic shoulf give an idea of the
    tipping form:

    Tipping Form


    Date Time Home Team Visiting Team Tie
    2 Aug, 03 7:00 PM England Fiji
    2 Aug, 03 7:00 PM Fiji Australia
    2 Aug, 03 7:00 PM New Zealand Australia






    This is the datagrid my ASPX Page:
    -------------------------------------------------------------------
    <asp:datagrid id=DataGrid1 runat="server" Width="100%"
    AutoGenerateColumns="False" DataMember="Table" DataKeyField="GameID"
    DataSource="<%# dsMatchesForTipping1 %>" ForeColor="Black" GridLines="None"
    CellPadding="2" BackColor="LightGoldenrodYellow" BorderWidth="0px"
    BorderColor="Tan">
    <Columns>
    <asp:TemplateColumn SortExpression="GameID">
    <ItemTemplate>
    <input type="hidden" runat="server" name="GameID" id="GameID" value='<%#
    DataBinder.Eval(Container.DataItem, "GameID") %>' />
    </ItemTemplate>
    </asp:TemplateColumn>

    <asp:BoundColumn DataField="Date" SortExpression="Date" HeaderText="Date"
    DataFormatString="{0:d MMM, yy}" />
    <asp:BoundColumn DataField="Time" SortExpression="Time" HeaderText="Time"
    DataFormatString="{0:t}" />
    <asp:BoundColumn DataField="HomeTeamName" SortExpression="HomeTeamName"
    HeaderText="Home Team" />
    <asp:TemplateColumn SortExpression="HomeTeamID">
    <ItemTemplate>
    <INPUT id="radioButtonPickHomeTeam" runat="server" type="radio" value='<%#
    DataBinder.Eval(Container.DataItem, "HomeTeamID") %>' name="Pick">
    </ItemTemplate>
    </asp:TemplateColumn>

    <asp:BoundColumn DataField="VisitingTeamName"
    SortExpression="VisitingTeamName" HeaderText="Visiting Team" />

    <asp:TemplateColumn SortExpression="VisitingTeamID">
    <ItemTemplate>
    <INPUT id="radioButtonPickVisitingTeam" runat="server" type="radio"
    value='<%# DataBinder.Eval(Container.DataItem, "VisitingTeamID") %>'
    name="Pick">
    </ItemTemplate>
    </asp:TemplateColumn>

    <asp:TemplateColumn HeaderText="Tie">
    <ItemTemplate>
    <INPUT id="radioButtonPickTie" runat="server" type="radio" value="Tie"
    name="Pick">
    </ItemTemplate>
    </asp:TemplateColumn>

    <asp:TemplateColumn SortExpression="UserEmail">
    <ItemTemplate>
    <input type="hidden" runat="server" name="UserEmail" id="UserEmail"
    value="" />
    </ItemTemplate>
    </asp:TemplateColumn>

    </Columns>
    </asp:datagrid>
    ----------------------------------------------------------------------------
    ----

    For the Code Behind Page:
    ----------------------------------------------------------------------------
    ------
    private void Submit1_ServerClick(object sender, System.EventArgs e)
    {
    string[,] tippings = new string[,] {{"988", "AUS", "hhhty"}, {"56678",
    "SA", "LfghghjLL"}, {"2367673", "NZ", "dfdfghgfjgfhf"}};

    for (int i = 0; i <= tippings.Rank; i++) {
    oleDbInsertCommand2.Parameters["GameID"].Value = tippings[i, 0];
    oleDbInsertCommand2.Parameters["Pick"].Value = tippings[i, 1];
    oleDbInsertCommand2.Parameters["Username"].Value = tippings[i, 2];
    oleDbConnection1.Open();
    oleDbInsertCommand2.ExecuteNonQuery();
    oleDbConnection1.Close();
    }
    }
    ----------------------------------------------------------------------------
    ----------

    Basically, if I am able to insert in the database the array "tippings"; then
    I should be able to dynamically populate the "tippings" array and then
    insert it into the database.

    Unfortunately I am unable to do it ;-( and time isn't on my side either.

    Any ideas?

    SSP

     
    SSP, Jul 21, 2003
    #6
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.