Avatar billede tj_cuper Nybegynder
04. juni 2007 - 21:39 Der er 11 kommentarer

Oversæt access udtræk til SQL server udtræk

Hej jeg har gennem et stykke tid prøvet at over sætte mit factory lag fra access til sql. men det lykkes ikke rigtig.

Mit dataaccess lag:

Imports Microsoft.VisualBasic
Imports System.Data.SqlClient
Imports System.Data


Public Class DataAccess
    Inherits System.Web.UI.Page

#Region "MS SQL data objecter"
    Public Function GetDataSql(ByVal Domain As String, ByVal Username As String, ByVal Password As String, ByVal Timeout As Integer, ByVal SQL As String, ByVal Database As String) As DataTable

        Dim objDS As New DataSet
        Dim objConn As New SqlConnection("Server=" & Domain & "; Database=" & Database & ";UID=" & Username & ";Password=" & Password & ";Connect Timeout=" & Timeout)
        Dim objDA As New SqlDataAdapter(SQL, objConn)

        objDA.Fill(objDS)
        objConn.Close()

        Return objDS.Tables(0)
    End Function


    Public Sub ModifyDataSql(ByVal Domain As String, ByVal Username As String, ByVal Password As String, ByVal Timeout As Integer, ByVal SQL As String, ByVal Database As String)

        Dim objConn As New SqlConnection("Server=" & Domain & "; Database=" & Database & ";UID=" & Username & ";Password=" & Password & ";Connect Timeout=" & Timeout)
        Dim objCMD As New SqlCommand(SQL, objConn)

        objConn.Open()
        objCMD.ExecuteNonQuery()
        objConn.Close()

    End Sub
#End Region


#Region "MS SQL Express data objecter"
    Public Function GetDataSqlExp(ByVal SQL As String) As DataTable

        Dim objDS As New DataSet
        Dim objConn As New SqlConnection("Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\PUBS.MDF; Integrated Security=True; Connect Timeout=30; User Instance=True")
        Dim objDA As New SqlDataAdapter(Sql, objConn)

        objDA.Fill(objDS)
        objConn.Close()

        Return objDS.Tables(0)
    End Function


    Public Sub ModifyDataSqlExp(ByVal SQL As String)

        Dim objConn As New SqlConnection("Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\PUBS.MDF; Integrated Security=True; Connect Timeout=30; User Instance=True")
        Dim objCMD As New SqlCommand(SQL, objConn)

        objConn.Open()
        objCMD.ExecuteNonQuery()
        objConn.Close()

    End Sub
#End Region

End Class

Her kommer så selve factory lagget:

Imports Microsoft.VisualBasic
Imports System.Data

Public Class NewsFac
    Inherits System.Web.UI.Page

    Dim _strDB As String = My.Request.PhysicalApplicationPath & "/App_Data/dbNews.mdb"


    Public Function GetAllNews() As DataTable

        Dim objData As New DataAccess
        Return objData.GetData("SELECT * FROM tblNews order by fldDato", _strDB)

    End Function



Håber virklig der er nogle der kan hjælpe mig :) På forhånd tak
Avatar billede arne_v Ekspert
04. juni 2007 - 21:47 #1
Kan du forklare hvad det er som ikke virker ?
Avatar billede tj_cuper Nybegynder
04. juni 2007 - 21:57 #2
Selve mit dataaccess skulle gerne virke. men ved ikke hvordan jeg skal lave mine udtræk om fra MS Access Database til MS SQL Server.

Eks. skal    Dim _strDB As String = My.Request.PhysicalApplicationPath & "/App_Data/dbNews.mdb" laves om til en connection. ved bare ikke helt hvordan den skal skrives og samme nede ved

Return objData.GetData("SELECT * FROM tblNews order by fldDato", _strDB)

Skal den vist hedde GetDataSQL som bliver lavet i DataAccess laget... men kan ikke få
SQL sætningen til at virke.

Return objData.GetData("SELECT * FROM tblNews order by fldDato", _strDB)

Så hvis du har en løsning ville det være super.
Avatar billede arne_v Ekspert
04. juni 2007 - 22:08 #3
SQL saetningen boer virke i alle database.

Du skal kalde den rigtige Get metode med de rigtige argumenter.

Jeg har stadig ikke forstaaet problemet.
Avatar billede tj_cuper Nybegynder
04. juni 2007 - 22:52 #4
Ja det er jo lige det men, får den her fejl når jeg bruger "GetDataSQL"

Argument not specified for parameter 'Database' of Public Funcion GetDataSQL(Domain As String, ByVal Username As String, ByVal Password As String, ByVal Timeout As Integer, ByVal SQL As String, ByVal Database As String) As system.Data.DataTabel

Ved slet ikke hvad jeg skal ændre i sql sætningen. Der må være et problem med DataAccess. Vil bare gerne have alle min sql udtræk i mit factory lag. Håber du kan hjælpe :)
Avatar billede arne_v Ekspert
05. juni 2007 - 04:38 #5
Din SQL er helt fin.

Men det ser ud som om din argument liste i kaldet til GetData er forkert. Den skal
naturligvis matche.
Avatar billede tj_cuper Nybegynder
05. juni 2007 - 16:21 #6
Ja okay kunne jeg så evt. få dig til at rette den til, så den passer :)
Avatar billede arne_v Ekspert
06. juni 2007 - 04:23 #7
Public Function GetDataSql(ByVal Domain As String, ByVal Username As String, ByVal Password As String, ByVal Timeout As Integer, ByVal SQL As String, ByVal Database As String) As DataTable

har 6 argumenter så:

Return objData.GetData("minserver", "mitbrugernavn", "mitpassword", 60, "SELECT * FROM tblNews order by fldDato", "mindatabase")
Avatar billede arne_v Ekspert
06. juni 2007 - 04:23 #8
Return objData.GetDataSql("minserver", "mitbrugernavn", "mitpassword", 60, "SELECT * FROM tblNews order by fldDato", "mindatabase")
Avatar billede tj_cuper Nybegynder
19. juni 2007 - 09:14 #9
Super det virker fandt os selv ud af det :9 Smid lige et svar :)
Avatar billede arne_v Ekspert
19. juni 2007 - 11:35 #10
svar
Avatar billede arne_v Ekspert
07. august 2007 - 22:43 #11
Så mangler du bare at acceptere svaret.
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