1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

Please Help Me, I Am to Be Fired!

Discussion in 'C#' started by webgaya, Aug 3, 2006.

  1. #1
    What I ask can be very familiar to most of you.
    So, please don't point me a URL in MSDN,
    I can't understand the stuff there. Instead please add
    the "lacking" codes and help me to complete the code.

    I need to store First Name and Last Name of users
    which come as user inputs through text boxes in
    a web form to an existing data table as a new data row.

    I used DataSets. I heard it is bulky. Is there any other
    way of achieving it? I have included the database
    connection in a method that is called for the click
    event of the submit button. Instead, Should I include
    it in the Page load event?

    I also want to know weather there is a way to give
    relative paths for database connection instead of
    an absolute one which won't be practical when
    I move the stuff to a web server.

    Below I have included the complete code even with
    HTML. The error I get is "Update requires a valid
    InsertCommand when passed DataRow collection
    with new rows"

    It occurs due to the statement,
    objCmd.Update(ds, "contacts")

    Please help me to complete the code. I am a
    trainee and this is a practice project that
    I should submit. I couldn't complete it for
    2 weeks. I made forum posts and got MSDN
    links. Please don't do that. Just tell me what code
    to where I should add. I really appreciate your
    help. Here is the code,

    <%@ Page Language="VB" Debug="true" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OleDb" %>

    <script runat="server">

    sub Add(obj as object, e as EventArgs)

    dim objConn as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\users\database\users.mdb")
    objConn.Open()

    dim objCmd as new OleDbDataAdapter("select * from contacts", objConn)
    dim ds as DataSet = new DataSet()
    objCmd.Fill(ds, "contacts")

    dim dr as DataRow = ds.Tables("contacts").NewRow()
    dr(1)=txtFirstName.text
    dr(2)=txtLastName.Text
    ds.Tables("contacts").Rows.Add(dr)

    objCmd.Update(ds, "contacts")

    objConn.Close()

    end sub

    </script>

    <html>
    <body>

    <form runat="server">
    <table width="100%" border="0" cellspacing="0" cellpadding="10">

    <tr>
    <td width="40%" align="right"><strong>First Name</strong></td>
    <td width="60%">
    <asp:textbox ID="txtFirstName" runat="server" />
    </td>
    </tr>

    <tr>
    <td align="right"><strong>Last Name</strong></td>
    <td>
    <asp:textbox ID="txtLastName" runat="server" />
    </td>
    </tr>

    <tr align="center">
    <td colspan="2">
    <asp:button ID="btnAdd" runat="server" OnClick="Add" Text="Add" />
    </td>
    </tr>
    </table>

    </form>

    </body>
    </html>
     
    webgaya, Aug 3, 2006 IP
  2. fluid

    fluid Active Member

    Messages:
    679
    Likes Received:
    29
    Best Answers:
    0
    Trophy Points:
    70
    #2
    Do you mean you need to update a table in a database or just the DataSet that you've created?

    I use DSN-less connections most of the time but even if you use DSN, there's no need to specify the full path to your database? For more information check: http://www.connectionstrings.com/

    If you answer my first question, i'll be able to help you more :)
     
    fluid, Aug 11, 2006 IP
  3. fluid

    fluid Active Member

    Messages:
    679
    Likes Received:
    29
    Best Answers:
    0
    Trophy Points:
    70
    #3
    Yes! I was bored. So i solved it for you :p

    After this line:
    dim objCmd as new OleDbDataAdapter("select * from contacts", objConn)
    add:
    Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)

    And just before calling Update on your DataAdapter, add this line:
    builder.GetUpdateCommand()

    Your code should work now :)

    The reason you were getting this error is because the objCmd.Update(ds, "contacts") requires an update statement which either you can manually build or have the CommandBuilder sort it for you (as in the above example).

    More information here:
    http://msdn2.microsoft.com/en-us/library/system.data.common.dataadapter.update.aspx
     
    fluid, Aug 11, 2006 IP