webForumDet fria alternativet

problem med uppdatering

.NET

42 svar · 698 visningar · startad av andreas_lindh · sida 2 av 3

Frågan, av andreas_lindh

Har denna koden Sub datagrid1update(sender As Object, E As datagridCommandEventargs) Dim tblaga as textbox= E.Item.FindControl("tblaga") Dim laga As String = tblaga.Text Dim tblagb as textbox= E.Item.FindControl("tblagb") Dim lagb As String = tblagb.Text Dim tbresultata as textbox= E.Item.FindControl("tbresultata") Dim resultata As String = tbresultata.Text Dim

Läs frågan i sin helhet →
Medlem sedan okt. 20005 273 inlägg
#21

Är det access och ett Datum/Tid fält så vill access att värdet omringas av brädgårdar (#17:30#)

mvh icaaq

Medlem sedan dec. 19991 072 inlägg
#22

Fungerar det med access också?

Ja....bara att jag råkade skriva fel...

ska vara:

Dim objcmd4 As New OleDb.OleDbCommand(strsql4, New OleDb.OleDbConnection(objconn.ConnectionString))

låter lit e onödigt att skapa en ny anslutning varje gång.

Japp, jag håller med! Men det verkar inte gå på nåt annat sätt...

Medlem sedan jan. 20011 140 inlägg
#23

Är det access och ett Datum/Tid fält så vill access att värdet omringas av brädgårdar (#17:30#)

Nej det är ett text fält så jag förstår inte varför det blir fel

Medlem sedan okt. 20005 273 inlägg
#24

Varför har du en tid i ett text-fält?

Medlem sedan jan. 20011 140 inlägg
#25

För att användare som matar in värdet har otroligt svårt att följa instruktioner.

Medlem sedan juni 20011 732 inlägg
#26

andreas_lindh skrev:

För att användare som matar in värdet har otroligt svårt att följa instruktioner.

Du kan ju alltid använd validatorcontrols för att "tvinga" besökarna att skriva in rätt... och/eller göra en funktion som parsar ut inskrivet datum till en korrekt datetime.

Medlem sedan jan. 20011 140 inlägg
#27

Du kan ju alltid använd validatorcontrols för att "tvinga" besökarna att skriva in rätt... och/eller göra en funktion som parsar ut inskrivet datum till en korrekt datetime.

Tänkte inte på att det gick och göra så.

Nytt problem som jag inte förstår vad det beror på.
Felmeddelande
System.Data.OleDb.OleDbException: Det har inte angetts något värde för en eller flera nödvändiga parametrar.

dim resultat1 as integer = dr("resultat_a")
							dim resultat2 as integer = dr("resultat_b")
							Dim strsql4 As String = String.Format("update matcher set lagid_a={0},lagid_b={1},dag={2},match_nummer={3}, tid={4}, cup_id={5},grupp_id={6},resultata={7},resultatb={8} where id={9}", lag1, lag2, dag, match_nummer,tid,cup_id,grupp_id,resultat1,resultat2, m_id)
							response.write(strsql4)
							dim objcmd4 as new oledbcommand(strsql4, objconn)
							
							objconn.close
							objcmd4.connection.open()
							objcmd4.executenonquery()
							objcmd4.connection.close()
							datagrid1.Edititemindex =-1
							datagrid1.databind()
							objconn.open

Skriver jag ut strsql4 ser det ut så här:
update matcher set lagid_a=6,lagid_b=7,dag=tor,match_nummer=2, tid=1899-12-30, cup_id=27,grupp_id=2,resultata=0,resultatb=0 where id=10

Jag tycker att det ser rätt ut

Medlem sedan juni 20011 732 inlägg
#28

Om dag och tid är strängar så tror jag du måste ha enkelblippar ' runt dessa.

Medlem sedan jan. 20011 140 inlägg
#29

Blir samma fel
System.Data.OleDb.OleDbException: Det har inte angetts något värde för en eller flera nödvändiga parametrar.

Medlem sedan okt. 20005 273 inlägg
#30
[red]
response.write(strsql4)
Response.End
[/red]

Gör så så ser vi hur SQLsatsen ser ut ?

Medlem sedan jan. 20011 140 inlägg
#31

sql satsen ser ut så här:

update matcher set lagid_a=6,lagid_b=7,dag='tor',match_nummer=2, tid=#1899-12-30#, cup_id=27,grupp_id=2,resultata=0,resultatb=0 where id=10
Medlem sedan juni 20011 732 inlägg
#32

Gissar att det ska vara enkelblippar runt datumet, även om det är en datetime.

Medlem sedan okt. 20005 273 inlägg
#33

Det jag brukar göra när SQL-satser krånglar.....kolla alla fnuttar('), kommatecken(,) och mellanslag ( ). Stämmer dem kolla alla fält i databasen om dem stämmer överens med satsen. Stämmer dem ställ frågan i QA (sqlserver) eller som en fråga i access.

Det brukar lösa problemen

mvh icaaq

Medlem sedan jan. 20011 140 inlägg
#34

Nu fungerar det. Det skulle vara ' fnuttar runt tid

Upptäckte ett till fel. Hade skrivit resultata istället för resultat_a.

Det blir ett nytt fel nu.

Exception Details: System.InvalidOperationException: Invalid attempt to Read when reader is closed.

Source Error: 

Line 56: 		objconn.open
Line 57: 		dr =objcmd1.executereader
Line 58: 			while dr.read()
Line 59: 				dim lag1 as integer = dr("lagid_a")
Line 60: 				dim lag2 as integer = dr("lagid_b")
 

Source File: h:\inetpub\wwwroot\cup\spelschema.aspx    Line: 58
Medlem sedan jan. 20011 140 inlägg
#35

Löste problemet med while dr.

Nytt problem

Är det något fel på den här sql satsen?

dim upptab as string="update Tabeller set poang=poang - 2,matcher=matcher - 1,win = win - 1,plus= plus - " + mala + ",minus= minus - " + malb + ",grupp_id = " + grupp_id +",lost=lost+0,tie=tie+0,lusminus = plusminus - " + plusminus1 +" where lag_id=" + laga +""

Felmedelande:

Exception Details: System.FormatException: Input string was not in a correct format.

Source Error: 

Line 97: 										dim plusminus as integer = malb-mala
Line 98: 										dim plusminus1 as integer =mala-malb
Line 99: 										dim upptab ="update Tabeller set poang=poang - 2,matcher=matcher - 1,win = win - 1,plus= plus - " + mala + ",minus= minus - " + malb + ",grupp_id = " + grupp_id +",lost=lost+0,tie=tie+0,lusminus = plusminus - " + plusminus1 +" where lag_id=" + laga +""
Line 100:										response.write(upptab)
Line 101:										response.end
 

Source File: h:\inetpub\wwwroot\cup\spelschema.aspx    Line: 99
Medlem sedan okt. 20005 273 inlägg
#36

icaaq skrev:

[red]
response.write(strsql4)
Response.End
[/red]

Gör så så ser vi hur SQLsatsen ser ut ?

icaaq skrev:

Det jag brukar göra när SQL-satser krånglar.....kolla alla fnuttar('), kommatecken(,) och mellanslag ( ). Stämmer dem kolla alla fält i databasen om dem stämmer överens med satsen. Stämmer dem ställ frågan i QA (sqlserver) eller som en fråga i access.

Det brukar lösa problemen

mvh icaaq

;)

Medlem sedan jan. 20011 140 inlägg
#37

Har provat att köra frågan i access. Fungerar perfekt.

Försökte skriva ut den med response.write men det fungerade inte utan jag får felmeddelandet.

Alla fält i databasen är tal

Medlem sedan okt. 20005 273 inlägg
#38

Det står ju inte:

[red]
dim upptab as string="update ..... .... ... 
[/red]

Utan det står ju:

[red]
dim upptab ="update ..... ... .. .. 
[/red]
Medlem sedan jan. 20011 140 inlägg
#39

Det blir samma fel.

Medlem sedan okt. 20005 273 inlägg
#40

Det är inte nått fel på syntaxen i SQL-satsen utan det där felmedelandet får du för att uppbygnaden av din string är felaktig. Kolla så att alla variabler stämmer, detta var mitt sista försök att hjälpa dig ikväll.

Gonatt icaaq

252 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)