När jag kör När du skriver DataSet41.Clear() försvinner också strukturen i datasetet. ok de funkade men de funkar inte att bläddra i datasetet med Vad binder du för kontroller? Är det säkert att select-commandet i din dataadapter är rätt? Ja binder textboxar och en datagrid. Lite kod kanske? Jag provade utan clear men då låg rader kvar i datasetet även de som andra program tagit bort i databasen. Då uppstår ett felmedelande när jag ändrar rader som ej finns med i databasen men som liger kvar i datasetet. clear rensar ju allt och läser in nytt Testade och det fungerade bra för mig (använde ingen grid annars samma).Varför tappar jag minna Bindings
DataSet41.Clear()
OleDbDataAdapter1.Fill(DataSet41._125cc)
Så försvinner mina Bindings till mina textboxar
därimot läser en datagrid in den nya datasetet.
hu får man tillbaks kopplingen ? till textboxarna
Sv: Varför tappar jag minna Bindings
Antar att du har gjort bindningarna i designläget(?). Använd DataSet41.tableX.rows.clear så rensar du bara dataraderna.
/PeterSv:Varför tappar jag minna Bindings
BindingContext(DataSet41, "125cc").Position = DataGrid1.CurrentRowIndex
efter att jag läst in ny data i datasetet från databasen.
det funkar att bläddra i datasetet när jag startar programet men efter en ny inläsning tappar jag något och får fölande felmedelande
Additional information: DataBinding could not find a row in the list that is suitable for all bindings
vad gör ja för fel ?Sv: Varför tappar jag minna Bindings
Returnerar du lika många rader med select-frågan som det finns rader i griden? Är datasetet starkt typat (antar det)? Mycket frågor :)
Du kan använda dataset1.merge för att 'merg:a' in en datatable i ditt dataset. Då behåller den strukturen och lägger in data på de kolumner i datasetet som stämmer överens med de från datatablen. Om kolumnen ej finns i det typade datasetet läggs den till dynamiskt. Du kan då se ifall antal kolumner i ditt typade dataset ökar (betyder att select-frågan returnerar fel kolumner).
/PeterSv:Varför tappar jag minna Bindings
Använder samma selectfråga och samma dataadapter.
som när jag startar programet.
det enda jag gör är att läsa in databasen på nytt.
ändringar ska ske från andra program också i min databas så därför måste ja kunna läsa in på nytt utan att behöva starta om mitt program.Sv: Varför tappar jag minna Bindings
Kör du _exakt_ samma kod när programmet startas som när du startar programmet? Du kan binda om textboxarna i runtime också men det skall inte behövas.
Varför kör du clear? För att hämta in allting igen?
/PeterSv:Varför tappar jag minna Bindings
så här läser ja in data vid start av program
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
OleDbDataAdapter1.Fill(DataSet41._125cc)
End Sub
' och de funkar bra
också att stega genom datamängden med
Public Sub NextRecord()
' The position of the binding context controls the "current record"
BindingContext(DataSet41, "125cc").Position = DataGrid1.CurrentRowIndex
End Sub
Sen läser jag in data på nytt man aktiverar form1
Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
DataSet41._125cc.Rows.Clear()
OleDbDataAdapter1.Fill(DataSet41._125cc)
End Sub
När jag kör detta så funkar det inte att bläddra igenom datamängden längre ?Sv: Varför tappar jag minna Bindings
Hittade det här om ditt felmeddelande:
Open the .xsd (the dataset)
you should see the columns in your dataset
click to convert the view to XML (bottom left)
find the checkbox column
after all the tags that look the same as all the others
press the space bar.
choose "default" from the popup menu.
in between the "" type false (or true)
NOTE: its CASE SENSITIVE
this will defult to that value when the new row is added.
and YES it is VERY bad as someone here wrote it.
its screwed me up 4 a while in the past and again
recently as i forgot about this fix, hense I share it.
good luck.
Alltså sätta defaultvärdet på de boolska fälten till true eller false.
Allternativt kan du skriva ungefär så här i koden:
dataset.table1.columns(0).defaultvalue=1
/Peter