Toon posts:

[ASP.net] Vraagje Insert query

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik werk met ASP.net en een MS SQL Server (windows 2000 Server)

Nu wil ik deze query laten runnen vanuit ASP.net:

code:
1
insert into images(Image, FotoboekID) select foto, 65 from tempImg


Dit werkt perfect als ik hem op de server zelf met de Enterprise manager invoer.. echter gaat het in ASP.net compleet de mist in.. blanco scherm.. en er gebeurt niets..

Gebruik ik deze query:

code:
1
insert into images(Image, FotoboekID) VAlues('test','23')


Dit gaat wel goed.. alleen ik wil dus alle records van die andere tabel over pompen.. waarom kan ik dat niet zo aangeven vanuit ASP.net ?

Ik hoop dat iemand mij hier verder mee kan helpen want ik zit al een tijdje met deze zooi te prutsen :( terwijl het princype zo simpel is en ook werkt.. maar vanuit ASP.net krijg ik het er niet in..

Voor de duidelijkheid nog ff mn source:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        Dim DS As DataSet
        Dim MyConnection As SqlConnection
        Dim MyCommand As SqlCommand

        Dim sqlstring As String

        MyConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
        MyConnection.Open()

        'sqlstring = "insert into images(Image, FotoboekID) VAlues(select foto from tempImg,'" & fotoboek & "')"
        sqlstring = "insert into images(Image, FotoboekID) select foto, 65 from tempImg"
        MyCommand = New SqlCommand(sqlstring, MyConnection)

        MyCommand.ExecuteNonQuery()
        MyConnection.Close()

[ Voor 34% gewijzigd door Verwijderd op 09-06-2004 14:38 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Dat haakje moet niet achter de "from tempImp"

code:
1
2
INSERT INTO tabel (a,b,c)
SELECT a,b,c, FROM AndereTabel

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
sorry slordige fout van mij.. maar is niet de oplossing als ik dat haakje weg haal nog steeds hetzelfde probleem... :(

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
In de SQL code zit geen foout. Weet je zeker dat er records in de tmpImage tabel staan?

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
ja 100% zeker dezelfde query werkt nl. in de zeg maar console van de enterprise manager waar ik de query getest heb.. voegt ie keurig 7 records toe.. via ASP.net wil het niet.. misschien andere indeling van de query noodzakelijk ?

Verwijderd

Topicstarter
P_de_B schreef op 09 juni 2004 @ 14:39:
In de SQL code zit geen foout. Weet je zeker dat er records in de tmpImage tabel staan?
tmpimg tabel ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Je krijgt ook geen excepties?
Ik zie ook niet zo direct iets dat fout is, tenzij je ook nog een transactie hebt en die niet commit.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 09 juni 2004 @ 14:47:
Je krijgt ook geen excepties?
Ik zie ook niet zo direct iets dat fout is, tenzij je ook nog een transactie hebt en die niet commit.
het zijn zo'n 7 records die hij toe wil voegen... zou het daar iets mee te maken hebben ? dat het slechts kan om 1 record toe te voegen ?

Ben nu bezig de hele applicatie om te bouwen dat ie stuk voor stuk toevoegd.. wat een werk terwijl die bovenstaatde query genoeg zou moeten zijn... :(

Verwijderd

Topicstarter
ik heb hem nu zo omgebouwd en dit werkt... dus tja.. waarom het bovenstaande niet werkt.. god knows...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 Dim DS As DataSet
        Dim MyConnection As SqlConnection
        Dim MyCommand As SqlCommand

        Dim sqlstring As String

        Dim mycommandsearch As SqlDataAdapter

        MyConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
        mycommandsearch = New SqlDataAdapter("select * from TempImg", MyConnection)

        DS = New DataSet

        Dim mytable As DataTable

        mycommandsearch.Fill(DS, "tempimg")

        Dim rijen As Integer = DS.Tables("tempimg").Rows.Count

        For counter = 0 To rijen - 1
            afbeelding(counter) = DS.Tables("tempimg").Rows(counter).Item(1)
        Next

        For counter = 0 To rijen - 1
            MyConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
            MyConnection.Open()

            sqlstring = "insert into images(Image, FotoboekID) Values('" & afbeelding(counter) & "','" & fotoboek & "');"

            MyCommand = New SqlCommand(sqlstring, MyConnection)

            MyCommand.ExecuteNonQuery()
            MyConnection.Close()
        Next

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Hmm, ik zou zowiezo ook eens naar parametrized queries kijken, ipv ze met string concat op te bouwen. (Zie de P&W FAQ, onder het SQL kopje).

Normaal moet die bovenstaande code echter ook werken.

https://fgheysels.github.io/


  • Fvdlaar
  • Registratie: Oktober 2001
  • Laatst online: 18-05 16:35
In de eerste query insert je 65 als FotoboekID, in de tweede query zet je er '23' in. Probeer eens met '65'.

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Als dat ID een numeriek veld is, dan zou het moeten gaan zonder quotes.

https://fgheysels.github.io/


Verwijderd

Topicstarter
nummeriek veld. .heb zo ongeveer alle mogelijkheden wel geprobeerd maar het werkt nu wel .. hoewel deze oplossing lang zo mooi niet is

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik ben nog wel nieuwsgierig: wat gebeurt er als je de code gewoon via Query Analyzer uitvoert?

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1