Avatar billede morch Nybegynder
21. september 2006 - 12:42 Der er 6 kommentarer og
1 løsning

Hvorfor opdaterer denne kode ikke

<%@ import namespace=system.Data %>
<%@ import namespace=MySql.Data.MySqlClient %>
<HTML>
    <HEAD>
    <script language="vbscript" runat="server">
      Sub Page_Load(sender as Object, e as EventArgs)
  If Not Page.IsPostBack
            BindData()
        Else
            'BindData()
        End If
  End Sub


  Sub BindData()
    '1. Create a connection
    Const strConnStr as String = "DATABASE=sport;SERVER=XXXXX;User Id=XXXXX;Password=XXXXXX;Allow Zero Datetime=True;"
    Dim objConn as New MYSqlConnection(strConnStr)
    objConn.Open()
     
    '2. Create a command object for the query
    Const strSQL as String = "SELECT * FROM resultater"
    Dim objCmd as New MYSqlCommand(strSQL, objConn)
     
    '3. Create/Populate the DataReader
    Dim objDR as MYSqlDataReader
    objDR = objCmd.ExecuteReader()   
     
    dgProducts.DataSource = objDR
    dgProducts.DataBind() 
  End Sub
 
  Sub dgProducts_Edit(sender As Object, e As DataGridCommandEventArgs)
    dgProducts.EditItemIndex = e.Item.ItemIndex
    BindData()
End Sub
Sub dgProducts_Cancel(sender As Object, e As DataGridCommandEventArgs)
    dgProducts.EditItemIndex = -1
    BindData()
End Sub

Sub dgProducts_Update(sender As Object, e As DataGridCommandEventArgs)
  'Read in the values of the updated row
  Dim ID as Integer = e.Item.Cells(1).Text
  Dim hold1 as String = CType(e.Item.Cells(2).Controls(0), TextBox).Text
  Dim hold2 as String = CType(e.Item.Cells(3).Controls(0), TextBox).Text
  Dim stilling as String = CType(e.Item.Cells(4).Controls(0), TextBox).Text

'Construct the SQL statement using Parameters
    Dim strSQL as String = _
      "UPDATE resultater SET hold1 = @hold1, " & _
      "hold2 = @hold2, stilling = @stilling " & _
      "WHERE ID = @ID"

    Const strConnString as String = _
      "DATABASE=sport;SERVER=XXXXX;User Id=XXXXX;Password=XXXXX;Allow Zero Datetime=True;"
    Dim objConn as New MYSqlConnection(strConnString)
    objConn.Open()

    Dim myCommand as MYSqlCommand = new MYSqlCommand(strSQL, objConn)
    myCommand.CommandType = CommandType.Text

    ' Add Parameters to the SQL query
    Dim parameterProdName as MYSqlParameter = _
              new MYSqlParameter("@hold1", MySqlDbType.VarChar)
    parameterProdName.Value = hold1
    myCommand.Parameters.Add(parameterProdName)

    Dim parameterUnitPrice as MYSqlParameter = _
              new MYSqlParameter("@hold2", MySqlDbType.VarChar)
    parameterUnitPrice.Value = hold2
    myCommand.Parameters.Add(parameterUnitPrice)

    Dim parameterProdDesc as MYSqlParameter = _
              new MYSqlParameter("@stilling", MySqlDbType.VarChar)
    parameterProdDesc.Value = stilling
    myCommand.Parameters.Add(parameterProdDesc)

    Dim parameterProdID as MYSqlParameter = _
              new MYSqlParameter("@ID", MYSqlDbType.Int32)
    parameterProdID.Value = ID
    myCommand.Parameters.Add(parameterProdID)

    myCommand.ExecuteNonQuery()  'Execute the UPDATE query
   
    objConn.Close()  'Close the connection
  'Finally, set the EditItemIndex to -1 and rebind the DataGrid
    dgProducts.EditItemIndex = -1
    BindData()       
End Sub
    </script>
    </HEAD>
    <body>
        <form runat="server">
            <asp:DataGrid id="dgProducts" runat="server" AutoGenerateColumns="False" CellPadding="4" HeaderStyle-BackColor="Black"
                HeaderStyle-ForeColor="White" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="True"
                OnEditCommand="dgProducts_Edit" EditItemStyle-BackColor="#eeeeee" OnUpdateCommand="dgProducts_Update"
                OnCancelCommand="dgProducts_Cancel">
                <EditItemStyle BackColor="#EEEEEE"></EditItemStyle>
                <HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="White" BackColor="Black"></HeaderStyle>
                <Columns>
                    <asp:EditCommandColumn ButtonType="PushButton" UpdateText="Update" CancelText="Cancel" EditText="Edit Info"></asp:EditCommandColumn>
                    <asp:BoundColumn DataField="ID" ReadOnly="True" HeaderText="ID"></asp:BoundColumn>
                    <asp:BoundColumn DataField="hold1" HeaderText="Hold 1">
                        <ItemStyle HorizontalAlign="Right"></ItemStyle>
                    </asp:BoundColumn>
                    <asp:BoundColumn DataField="hold2" HeaderText="Hold 2"></asp:BoundColumn>
                    <asp:BoundColumn DataField="stilling" HeaderText="Stilling"></asp:BoundColumn>
                </Columns>
            </asp:DataGrid>
        </form>
    </body>
</HTML>
Avatar billede snepnet Nybegynder
21. september 2006 - 12:44 #1
Altså i databasen eller?
Mvh
Avatar billede arne_v Ekspert
21. september 2006 - 13:26 #2
nogen fejl besked ?
Avatar billede morch Nybegynder
21. september 2006 - 13:47 #3
NIx 0 fejlbesked, men der opdaqteres ikke i databasen
Avatar billede snepnet Nybegynder
21. september 2006 - 13:50 #4
Har du debugget ned igennem koden, og checket at dine variable har de værdier du forventer?
Mvh
Avatar billede morch Nybegynder
21. september 2006 - 14:54 #5
Ja
Avatar billede snepnet Nybegynder
21. september 2006 - 20:37 #6
:o) - kort og præcist.

Hvis din kode er som vist - og du kun udfører din databinding hvis der ikke er tale om et postback, så har jeg desværre ikke noget bud.... Jeg kan ikke lige se hvad der skulle være galt.
Fungerer koden hvis du blot sætter parametrene manuelt og kører den (f.eks. i en konsolapplikation).
Mvh
Avatar billede morch Nybegynder
26. november 2007 - 09:26 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester