webForumDet fria alternativet

Ta ut värde och sätt in direkt i annan OleDbCommand

.NET

5 svar · 215 visningar · startad av Dino

Medlem sedan sep. 20011 914 inlägg
Frågan#1
sqlM = "SELECT top 1 m_id FROM m WHERE m_type = (1)"
cmdM = New OleDbCommand(sqlM,connDB)
        
sqlP = "INSERT INTO g(g_id) values(@intM)"
cmdPoints = New OleDbCommand(sqlP,connDB)
cmdPoints.Parameters.Add("@intM ",intM )

try
   connDB.Open()
   intM = cmdM.ExecuteScalar()
   cmdPoints.ExecuteNonQuery()
catch 
   ...

Kan man göra så här. Först tar jag ut ett värde från tabellen m. Och sen i nästa fråga så skall jag sätta in resultatet från första frågan i en annan tabell.
Åker då alltså värdet i intM in i sqlP innan cmdPoints.ExecuteNonQuery() körs.

Medlem sedan sep. 20011 914 inlägg
#2

Fick svar på annat håll.

sqlM = "SELECT top 1 m_id FROM m WHERE m_type = (1)" 
cmdM = New OleDbCommand(sqlM,connDB) 

sqlP = "INSERT INTO g(g_id) values(@intM)" 
cmdPoints = New OleDbCommand(sqlP,connDB) 

try 
connDB.Open() 
   cmdPoints.Parameters.Add("@intM ",cmdM.ExecuteScalar()) '<---
   cmdPoints.ExecuteNonQuery() 
catch 
...
Medlem sedan juni 20001 257 inlägg
#3

Så här borde du kunna göra:

INSERT INTO g(g_id) SELECT top 1 m_id FROM m WHERE m_type = 1
Medlem sedan sep. 20011 914 inlägg
#4

Jo, det kan ju funka. Tack. :)

Medlem sedan sep. 20011 914 inlägg
#5

Kan man göra insert på flera tabeller samtidigt. Exempel:

INSERT INTO g(g_id),h(h_id),p(p_id) SELECT top 1 m_id FROM m WHERE m_type = 1
Medlem sedan juni 20001 257 inlägg
#6

Nej.

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)