Avatar billede jakobclausen Nybegynder
24. februar 2004 - 09:01 Der er 16 kommentarer og
1 løsning

Udtræk fra database i datagrid med edit/update

Jeg læser til multimediedesign på sidste semester hvor jeg har valgt at kigge på asp.net som selvstudie. Jeg har i næsten en uge siddet og bøvlet med at lave et udtræk fra en mysql database, der bliver hentet ind i et datagrid med mulighed for edit/update.

Derfor vil jeg blive meget glad hvis en her kunne lave et funktionelt eksempel til mig, helst som codebehind.

Oplysninger om database:
Server: web1.ikasths.dk
database: js
bruger: xxx
pass: xxx

Jeg vil gerne have lavet et udtræk af alle data fra tabellen EMPLOYEE.

Felter i EMPLOYEE:
- FNAME
- MINIT
- LNAME
- SSN
- BDATE
- ADDRESS
- SEX
- SALARY
- SUPERSSN
- DNO

(Kolonne navnene _er_ angivet med store bogstaver)

På forhånd tak!
Avatar billede jakobclausen Nybegynder
24. februar 2004 - 10:15 #1
Pointsatsen kan hæves hvis det hjælper!
Avatar billede thor.ostergaard Nybegynder
24. februar 2004 - 10:34 #2
Hvad er problemet??
Jeg har lidt eksempler på arbejde med datagrids liggende på http://www.kursusmaterialer.dk/ASP.NET_II/Dataset_og_datagrid_objektet/Ret_post.aspx

Det burde kunne bringe dig videre.
Avatar billede jakobclausen Nybegynder
24. februar 2004 - 10:39 #3
Ja hvad er problemet det kan jeg faktisk ikek rigtig svare dig på. Jeg kan godt få den til at lave input-felter ved klik på "edit" og omvendt ved "cancel". Men når jeg klikker på "Update" sker der ikke noget, selvom jeg har fulgt en vejledning fra msdn.

Vil meget gerne have et komplet eksempel istedet for en masse henvisninger, da jeg ikke har lavet andet end at kigge på sådanne den sidste uges tid.
Avatar billede jakobclausen Nybegynder
24. februar 2004 - 10:40 #4
Forresten bruger jeg VB.net
Avatar billede thor.ostergaard Nybegynder
24. februar 2004 - 10:57 #5
OK - det er tæt på at være et komplet eksempel, der ligger på kursusmaterialer.dk, men du kan godt få et fuldt eksempel, der virker (bruger en access database, som du kan hente på kursusmaterialer.dk). Start med at lave en web-form med et datagrid og hvis du kalder det dgridAndeby skulle koden virke umiddelbart:
Kan du få det til at virke burde det være en overkommelig opgave at få det til at virke med en mySQL database.

Imports System.Data
Imports System.Data.OleDb

Public Class _8_database
    Inherits System.Web.UI.Page

#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub
    Protected WithEvents dgridAndeby As System.Web.UI.WebControls.DataGrid

    'NOTE: The following placeholder declaration is required by the Web Form Designer.
    'Do not delete or move it.
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region
    Dim objAdapter As OleDbDataAdapter

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim strConnection As String
        Dim strSQL As String
        Dim objConnection As OledbConnection
        strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("Andeby.mdb")
        objConnection = New OledbConnection(strConnection)
        strSQL = "SELECT * FROM Person"
        objAdapter = New OleDbDataAdapter(strSQL, objConnection)

        If Not IsPostBack Then
            DoDatabind()
        End If
    End Sub

    Private Sub dgridAndeby_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgridAndeby.CancelCommand
        dgridAndeby.EditItemIndex = -1
        DoDatabind()
    End Sub

    Private Sub dgridAndeby_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgridAndeby.EditCommand
        dgridAndeby.EditItemIndex = e.Item.ItemIndex
        DoDatabind()
    End Sub

    Private Sub dgridAndeby_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgridAndeby.UpdateCommand
        Dim objRows() As DataRow
        Dim dsetAndeby As New DataSet
        Dim strSelect As String
        strSelect = "ID='" + CStr(dgridAndeby.DataKeys(e.Item.ItemIndex)) + "'"
        dsetAndeby = GetDataset()
        objRows = dsetAndeby.Tables(0).Select(strSelect)
        objRows(0).Item("Fornavn") = CType(e.Item.Cells(2).Controls(0), TextBox).Text

        ' Opdater database
        Dim ObjBuilder As OleDbCommandBuilder = New OleDbCommandBuilder(objAdapter)
        objAdapter.UpdateCommand = ObjBuilder.GetUpdateCommand()
        objAdapter.InsertCommand = ObjBuilder.GetInsertCommand()
        objAdapter.DeleteCommand = ObjBuilder.GetDeleteCommand()
        objAdapter.Update(dsetAndeby, "Andeby")
        dgridAndeby.EditItemIndex = -1
        DoDatabind()
    End Sub

    Private Function GetDataset() As DataSet
        Dim dsetAndeby As New DataSet
        objAdapter.Fill(dsetAndeby, "Andeby")
        Return dsetAndeby
    End Function

    Private Sub DoDatabind()
        Dim objDataView As DataView
        '        strSortOrder = ViewState("SortOrder")
        objDataView = GetDataset().Tables(0).DefaultView
        '      objDataView.Sort = strSortOrder
        dgridAndeby.DataSource = objDataView
        dgridAndeby.DataBind()
    End Sub

End Class
Avatar billede jakobclausen Nybegynder
24. februar 2004 - 11:06 #6
thor.ostergaard >> Jamen jeg er ikke interesseret i at bruge en access database. Jeg har en mysql-database og den vil jeg gerne bruge.
Avatar billede jakobclausen Nybegynder
24. februar 2004 - 11:07 #7
Jeg har fundet tonsvis af kode lige som dit hvor de bruger et microsoft produkt (access database), og det er ikke bare sådan ligetil at lave det brugbart til en mysqldatabase - jeg har i hvertfald ikek kunne få det til at virke, det er jo det der er mit problem.
Avatar billede thor.ostergaard Nybegynder
24. februar 2004 - 11:18 #8
Tja... Min tanke var, at man kunne bruge et eksempel, der virkede mod en anden database og efterfølgende skifte til odbc connection i stedet. Skifter selv på samme måde mellem Access og SQL, men det er jo dit eget valg.

God kamp :-)
Avatar billede jakobclausen Nybegynder
24. februar 2004 - 11:25 #9
Det var også min tanke, men det er ligesom det jeg har siddet og bøvlet med den sidste uges tid _uden_ held.
Avatar billede jettes Nybegynder
24. februar 2004 - 13:23 #10
Hvis du opretter en tom fil ved navn DB.udl (efternavnet er det vigtige) kan du ved at klikke på den og starte på "Provider" fanen, vælge din MySQL forbindelse og konfigurere den.

Efter du har afprøvet forbindelsen vha. knappen på "Connection/forbindelse" fanen, åbner du filen i notepad, og vupti: her er din connection string.

Så skal du "bare" vælge dine DB objekter (Connection, ....) fra system.data.odbc objekterne.
Avatar billede jakobclausen Nybegynder
24. februar 2004 - 13:48 #11
jettes >> Skal jeg have noget bestemt program installere for at kunne gøre dette ?
Avatar billede jakobclausen Nybegynder
24. februar 2004 - 13:49 #12
jettes >> Kan jeg se at jeg ikke skal - hvilken provider skal jeg vælge ?
Avatar billede jettes Nybegynder
24. februar 2004 - 14:28 #13
Prøv med Oledb for ODBC, hvis ikke der er noget, der ligner MYSQL mere. Jeg har ikke selv leget med MySQL - kun med så mange andre DB'er...
Avatar billede jakobclausen Nybegynder
24. februar 2004 - 14:35 #14
Jeg får afvide at Datakildnavnet ikke blev fundet, og at der ikke er angivet en standard driver.

Ved ikke om det har noget at sige, men min mysql server er ikke lokal.
Avatar billede jettes Nybegynder
24. februar 2004 - 14:47 #15
Så må du starte med at oprette en ODBC forbindelse til den.

Administrative Tools, Data Sources (ODBC)

Det er en system DSN du skal oprette, men resten må jeg melde pas på.

Ellers kig på nogen af disse links:

http://www.mysql.com/search/index.php?q=.NET+provider&from=%2Findex.html
Avatar billede jakobclausen Nybegynder
25. februar 2004 - 08:16 #16
Kan det virkelig passe at der slet ikke er nogen der kan hjælpe med dette - bruger alle access database ?
Avatar billede jakobclausen Nybegynder
25. februar 2004 - 10:44 #17
Jeg er på vej til selv at finde ud af det, så lukker nu!
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