Avatar billede jens_bach Nybegynder
20. juni 2005 - 15:21 Der er 8 kommentarer og
1 løsning

SQL - uniqueidentifier

Hej...

jeg kan fint hændte (nogle) data fra en ms-sql server, men uniqueidentifier kommer som et 0 tilbage, det er nok bare mig.

men hvordan skal jeg hændte den ud ?

-------
Dim Uniq_id As String = rdr(0)
Console.WriteLine(Uniq_id)
-------
Avatar billede arne_v Ekspert
20. juni 2005 - 15:27 #1
hvad giver

Dim Uniq_id As Guid = CType(rdr(0),Guid)
Console.WriteLine(Uniq_id)

?
Avatar billede jens_bach Nybegynder
20. juni 2005 - 15:31 #2
Specified cast is not valid.
Avatar billede arne_v Ekspert
20. juni 2005 - 15:41 #3
hvad er rdr(0).GetType.Name ?
Avatar billede arne_v Ekspert
20. juni 2005 - 16:03 #4
følgende virker hos mig:

Imports System
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient

Class MainClass
    Public Shared Sub Main(ByVal args As String())
        Dim con As SqlConnection = New SqlConnection ("server=ARNEPC3;Integrated Security=SSPI;database=Test")
        con.Open
        Dim cre As SqlCommand = New SqlCommand ("CREATE TABLE guidtest (id UNIQUEIDENTIFIER PRIMARY KEY,data VARCHAR(50))", con)
        cre.ExecuteNonQuery
        Dim ins As SqlCommand = New SqlCommand ("INSERT INTO guidtest VALUES(NEWID(), 'bla bla')", con)
        ins.ExecuteNonQuery
        Dim sel As SqlCommand = New SqlCommand ("SELECT * FROM guidtest", con)
        Dim rdr As SqlDataReader = sel.ExecuteReader
        While rdr.Read
            Dim id As Guid = CType(rdr(0), Guid)
            Dim data As String = CType(rdr(1), String)
            Console.WriteLine(id.ToString & " " & data)
        End While
        rdr.Close
        Dim drp As SqlCommand = New SqlCommand("DROP TABLE guidtest", con)
        drp.ExecuteNonQuery
        con.Close
    End Sub
End Class
Avatar billede jens_bach Nybegynder
20. juni 2005 - 20:14 #5
hvad er rdr(0).GetType.Name ? > det er en Double
Avatar billede arne_v Ekspert
20. juni 2005 - 20:28 #6
rdr(0).GetType.Name

er typen af den første kolonne i result settet

og den er Double ikke Guid !
Avatar billede jens_bach Nybegynder
20. juni 2005 - 20:32 #7
hvis

--------------------

Dim SLQ_string As String
        Dim con As SqlConnection = New SqlConnection("server=127.0.0.1;Integrated Security=SSPI;database=DEDB")
        con.Open()

        SLQ_string = "SELECT TOP 2 "
        SLQ_string = SLQ_string & "JobName, ActualStartTime, EndTime, IsJobActive, FinalJobStatus, FinalErrorCode, "
        SLQ_string = SLQ_string & "FinalErrorCategory, TotalDataSizeBytes, TotalRateMBMin, "
        SLQ_string = SLQ_string & "TotalNumberOfFiles, TotalNumberOfDirectories, TotalSkippedFiles,"
        SLQ_string = SLQ_string & "TotalCorruptFiles, TotalInUseFiles, JobLogFileName, JobHistoryID "
        SLQ_string = SLQ_string & "FROM dbo.JobHistorySummary "
        SLQ_string = SLQ_string & "ORDER BY ActualStartTime DESC "
        Console.WriteLine(SLQ_string.ToString)

        Dim cmd As SqlCommand = New SqlCommand(SLQ_string, con)
        Dim rdr As SqlDataReader = cmd.ExecuteReader
        While rdr.Read
            Dim JobName As String = rdr(0)
            Dim JobHistoryID As Guid = rdr(12)


            Console.WriteLine(JobName)
            Console.WriteLine(JobHistoryID.ToString)
           


        End While

----------------

så giver den mig JobName rigtig men ikke JobHistoryID den bliver 0 ?


mens der i sql databasen er "{4CEA5945-A227-4DE6-A97E-E36F0EAF10E6}"
Avatar billede jens_bach Nybegynder
20. juni 2005 - 20:41 #8
det er mig som ikke kan tælle :( unskyld....

lig lige et svar :) UPS
skulder vist en øl eller to, tak for hjælpen
Avatar billede arne_v Ekspert
20. juni 2005 - 20:49 #9
ok
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
Kurser inden for grundlæggende programmering

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