webForumDet fria alternativet

Märkligt fel (bugg) i ado.net...

.NET

2 svar · 201 visningar · startad av fredrik

Medlem sedan dec. 19991 072 inlägg
Frågan#1

Ok...vet inte riktigt var jag ska börja här...men jag försöker ta det från början...

Jag håller på med applikation (ej asp) i VB.NET.

Vad jag vill göra är följande: (väldigt grundläggande)

1. Skapa ett dataset (el. datatable) från databas (SQL-server)
2. Binda en viss kolumn mot en "textbox"
3. Uppdatera databasen när texten i boxen ändras.

Ok, vad jag gör är nu följande:

1. Jag skapar ett DataTable, hämtar data mha SqlConnection, SqlCommand, SqlDataAdapter och SqlCommandBuilder. (funkar)

2. Binder datan till Textboxen (funkar)

3. Triggar eventen när textboxen ändras (funkar)

4. Gör "sqlDataAdapter.Update(DataTable)" funkar inte

Nu till det märkliga, jag får inget felmeddelande alls, men det händer inget...

Min första tanke var självklart att mitt DataTable inte blivit uppdaterat, så jag gjorde en kontroll där jag skrev ut innehållet från kolumnen före jag ändrat boxen och efter. Men DataTable.n var ändrad, alltså låg inte felet där.

Jag tänkte lite nu och testade följande:
Fört binder jag kontrollen..MEN innan jag gör update skriver jag:

dataTable.rows(0).item(12) = 22

Sen gjorde jag "update", och då funkade det helt plötsligt..

Funderade vidare och testade:

dim oValue as object = textbox1.text
dataTable.rows(0).item(12) = oValue

Det fungerade inte...fast jag såg ju att "oValue" innehöll rätt värde...

Nähä tänkte jag och "ångrade" tillbaka till mitt "hårdkodade" värde och hör och häpna: Nu funkade inte det häller! Vad jag då fick göra var att stänga VS och starta igen...och då funkade det igen...Provade samma sak igen och det var samma visa igen...fick starta om för att det skulle funka...

Gick vidare och startade en "Trace" på SQL-servern så att jag såg all kommunikation som hände.

Nu till det märkliga:
När jag "hårdkodar" ett värde till DataTablen. då skickas data till SQL-servern MEN när jag andvänder det "riktiga" värdet så händer INGENTING...

Alltså:
Varför skickar inte ADO.NET något kommando till SQL-servern när jag jobbar med bunden data?

Till saken hör att jag använder redan ett antal "DataGrids" och dem funkar klockrent!

Är det nån som har någon som helst idé, tanke eller kommentar på vad det kan vara?

Jag får alltså inge felmeddelande alls!

Börjar bli lite frustrerad här!

Tack på förhand!

Medlem sedan apr. 20012 266 inlägg
#2

DataTable är en class i .NET och bör inte användas som variabel namn (om du inte bara ville visa att du hade en DataTable).

Svårt när man inte får några felmeddelanden, men du kan söka reda på exempel som gör samma sak som du gör och se hur de har gjort.

Medlem sedan dec. 19991 072 inlägg
#3

Jag använde bara "DataTable" i exemplet här, i min kod är den döpt till annat.

Problemet är att jag har ännu inte hittat några exempel som uppdaterar data från en textbox...bara som binder för uppvisning...

Tack ändå

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