mboost-dp1
Erstatning af tabeller i dataSet (C#)
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Jeg er ved at lave et program der henter tal fra en DB2 database ud fra nogle valg brugeren foretager. Jeg har dog problemer med at brugeren skal have lov til at lave flere udtræk uden at lukke programmet.
Her er hvad jeg startede med at gøre:
Det virker fint ved første udtræk, men når man laver et nyt udtræk, bliver de gamle data ikke slettet. Det betyder at der er rækker og kolonner der ikke burde være der. Det løser jeg så med denne kode:
Det virker også fint ved normale omstændigheder, men hvis jeg klikker på en kolonneoverskrift for at sortere den, før jeg laver andet udtræk, får jeg denne fejl på linje 9: System.NullReferenceException was unhandled (Object reference not set to an instance of an object).
Jeg har prøvet at bruge dataSet1.Tables.Clear() i stedet for, men det ser ikke ud til at have nogen effekt overhovedet. Jeg har desuden prøvet at bruge dataSet1.Clear() i stedet for, men der er det kun rækkerne der forsvinder. De gamle kolonner er der stadigvæk.
Jeg har ikke kodet så meget C#, så jeg håber lidt at der er en der kan vise mig en løsning der er noget smartere end det jeg prøver på, eller i hvert fald forklare mig hvad jeg gør forkert.
Den komplette kode kan evt. findes her: http://fyrrevang.dk/sst/autudtraek.zip
Her er hvad jeg startede med at gøre:
dB2Connection1.ConnectionString = "Database=SST;UserID=" + UserName + ";Password=" + Password + ";Server=Berlin";
dB2Connection1.Open();
dB2Command1.CommandText = SQL;
db2DataAdapter1.Fill(dataSet1);
dB2Connection1.Close();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataMember = dataSet1.Tables[0].TableName;
Det virker fint ved første udtræk, men når man laver et nyt udtræk, bliver de gamle data ikke slettet. Det betyder at der er rækker og kolonner der ikke burde være der. Det løser jeg så med denne kode:
dB2Connection1.ConnectionString = "Database=SST;UserID=" + UserName + ";Password=" + Password + ";Server=Berlin";
dB2Connection1.Open();
dB2Command1.CommandText = SQL;
if (dataSet1.Tables.Count > 0)
{
dataSet1.Tables[0].Rows.Clear();
dataSet1.Tables[0].Columns.Clear();
}
db2DataAdapter1.Fill(dataSet1);
dB2Connection1.Close();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataMember = dataSet1.Tables[0].TableName;
Det virker også fint ved normale omstændigheder, men hvis jeg klikker på en kolonneoverskrift for at sortere den, før jeg laver andet udtræk, får jeg denne fejl på linje 9: System.NullReferenceException was unhandled (Object reference not set to an instance of an object).
Jeg har prøvet at bruge dataSet1.Tables.Clear() i stedet for, men det ser ikke ud til at have nogen effekt overhovedet. Jeg har desuden prøvet at bruge dataSet1.Clear() i stedet for, men der er det kun rækkerne der forsvinder. De gamle kolonner er der stadigvæk.
Jeg har ikke kodet så meget C#, så jeg håber lidt at der er en der kan vise mig en løsning der er noget smartere end det jeg prøver på, eller i hvert fald forklare mig hvad jeg gør forkert.
Den komplette kode kan evt. findes her: http://fyrrevang.dk/sst/autudtraek.zip
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.