Hej (igen). Jag ser inget fel i koden vid InsertCommand. "Hoppar över" tror jag inte på. Har du stegat genom koden? Hur ser din SQL/stored procedure ut? Ah. Ok, ska fimpa mellanslaget. Oj, den strängen såg inte rolig ut. Ett tips är att använda parametrar till sql-satsen istället så blir koden mer lättläst. Jag ska lägga det som en stored procedure sedan, jag vill bara veta att allt är kosher innan jag går vidare. Hmm.. Ok, ännu bättre. Fast då är det ju bättre att skriva din SP först och pröva den med de parametrar som behövs i något query analyser verktyg. Istället för att blanda in VB-koden nu. ser inte ut som du kopplat sqlcommandobjektet till connectionen Jappjapp.. Funkade bra. Tack så hemskt mycket för hjälpen.. Köra INSERT
Jag försöker för fulla hus att få min stackars applikation att skriva till en databas, den kopplar upp sig så vackert, den kan tydligen läsa ut vad jag vill ha ur den, men den kan INTE skriva till databasen.
Följande är upplägget:
1. Ut på nätet till en viss mailadress
2. Tanka hem alla attachments som ligger på adressen
3. Gå igenom filerna och kör in radbrytning vid varje '
4. Spara om filerna formaterade och klara i en annan mapp
5. Läsa in de formaterade filerna en efter en och hämta upp värden på angivna ställen i filen.
6. Lägg till värdena i en SQL-server 2005 databas genom ett INSERT statement.
Punkt 1 - 5 verkar funka finfint.
Punkt 6 verkar den inte alls gilla. Jag använder följande kod (lite nerklippt)
Dim sInsertCmd As SqlCommand
sInsertCmd = New SqlCommand(SQLinsert, Conn)
Conn.Open()
sInsertCmd.ExecuteNonQuery()
Conn.Close()
Detta verkar den bara hoppa över.
Då applikationen är tilltalad att radera vissa filer efter INSERT så tycker jag att den borde göra som den ska eftersom filerna försvinner.
Får dessutom ett fel som säger:
ExecuteReader: Egenskapen Connection har inte initierats
Detta torde vara i följande avsnitt:
Dim Conn As New SqlConnection
Dim sSQL As New SqlCommand
Try
Conn.ConnectionString = "Data Source = 111.222.333.444;Initial Catalog=myDB;UID=sa;PWD=losenord"
Conn.Open()
Dim rs As SqlDataReader = sSQL.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
sSQL = New SqlCommand("SELECT * FROM tblnamn WHERE " & nID & " BETWEEN nIDFrom AND nIDto", Conn)
rs = sSQL.ExecuteReader()
Men jag förstår inte varför den gnäller riktigt.. Jag har försökt läsa på vad det kan bero på men jag får inget grepp om det.
Dessutom så kan jag inte vara säker på EXAKT vart det barkar åt skogen eftersom jag bara vet ATT det händer saker, men inte vart i koden.
Jag har inga Errors i Error Listen.
Jag blir snart tokig på det här med .NET, men det är säkert jättefiffigt om man väl lärt sig det.
Sv: Köra INSERT
ang. connection, där har du ett syntaxfel:
ConnectionString = "Data Source = 111.222.333.444;Initial ......"
borde vara
Data Source=111.222.333.444
(ej mellanslag)Sv:Köra INSERT
Så här ser SQL-strängen ut:
<code>
SQLinsert = "INSERT INTO tblFiles (fSent,fReceived,fMsg,Cnor,CnorAddr,CnorAddr2,CnorZip,CnorCity,CnorCtr,Cnee,CneeAddr,CneeAddr2,CneeZip,CneeCity,CneeCtr,CneePhone,DepCity,DestCity,DestCtr,Containers,ContainerType,Weight,Volume,WaybillNumber,MantleWayBill,FTXDelInstr,FTXCnorOrderID,FTXCneeOrderID,FTXSupplierID,FTXSpecialInstr,BasePrice,RespOffice,fType) VALUES ('" & DTM200 & "','" & Microsoft.VisualBasic.Left(Now, 10) & "','" & sBGM & "','" & sCnorN & "','" & sCnorA & "','" & sCnorA2 & "','" & Replace(sCnorZ, " ", "") & "','" & sCnorC & "','" & sCnorCtr & "','" & sCneeN & "','" & sCneeA & "','" & sCneeA2 & "','" & Replace(sCneeZ, " ", "") & "','" & sCneeC & "','" & sCneeCtr & "','" & sCOMval & "','" & sLOC5val & "','" & sLOC8val & "','" & sLOC28val & "','" & sGIDq & "','" & sGIDt & "','" & sMEAwt & "','" & sMEAvol & "','" & sPCI(sN) & "','" & sRFFAAS & "','" & sDINval & "','" & HANcnorOID & "','" & HANcneeOID & "','" & HANsuppOID & "','" & sSIC & "','" & nTotal & "','" & sOffice & "','Injected')"
</code>Sv: Köra INSERT
Sv:Köra INSERT
Sv: Köra INSERT
Jag gjorde en liten Loggfilssnurra och den fastnar stenhårt för ett felmeddelande:
2006-08-18 10:28:31 - ExecuteReader: Egenskapen Connection har inte initierats.
Men varför detta???????
Dim Conn As New SqlConnection
Dim sSQL As New SqlCommand
Conn.ConnectionString = "Data Source=111.222.333.444;Initial Catalog=myDB;UID=sa;PWD=losenord"
Try
Conn.Open()
Dim rs As SqlDataReader = sSQL.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
Och sen kör jag:
sSQL = New SqlCommand("SELECT * FROM tblnamn WHERE " & lnamn & " BETWEEN nIDfrom AND nIDto", Conn)
rs = sSQL.ExecuteReader()
Och sedan efter några rader så har vi:
sSQL = New SqlCommand("SELECT * FROM tblTest WHERE Testval='" & sRFFAAS & "' AND Piecenumber='" & sPCI(sN) & "'", Conn)
Conn.Open()
rs = sSQL.ExecuteReader()
Conn.Close()
Där någonstans skiter det sig. Jag vet inte på vilken rad dock.
Sv: Köra INSERT
Sv:Köra INSERT
typ
loCommand.Connection = Connection()Sv: Köra INSERT
Nu ska jag bara sätta mig och kolla varför den läser igenom varje post i textfilen 50 gånger och skriver in den i databasen.. Känns lite halvmeningslöst. ;)