Klette Skrevet 3. august 2004 Del Skrevet 3. august 2004 Lager ett program som skal ha lagerbeholdning av enkelte varer og slike ting. Men jeg trenger en lett måte å lagre dette på. Hva er den enkleste måten å lagre data på i C#? Har snust på xml, men det virker tungvint. Noen tips? (Jeg vil helts ha dataene lagret i filer og ikke i registere, da jeg føler at det må være enklere å ta backup av filer ) Lenke til kommentar
TAFT Skrevet 4. august 2004 Del Skrevet 4. august 2004 Dersom du bruker datasett (System.Data.DataSet) for å lagre data er det ikke noe problem å lagre/lese det som xml. Sjekk ut DataSet.WriteXml og DataSet.ReadXml Lenke til kommentar
MagneH Skrevet 4. august 2004 Del Skrevet 4. august 2004 Du finner noen eksempler her: http://www.funducode.com/csharp/filehandling.htm Lenke til kommentar
alftore Skrevet 4. august 2004 Del Skrevet 4. august 2004 Hva med å bruke en database? Lenke til kommentar
MagneH Skrevet 13. august 2004 Del Skrevet 13. august 2004 Jeg driver og lærer meg C#, og tok derfor utgangspunkt i et DataGrid eksempel for å lage et lite program for vedlikehold av en varebeholdning. Det bruker DataGrid, DataSet og XML. Det er ikke brukbart i seg selv, men laget for å lære teknikken. OBS: Jeg har ikke lagt inn feilutgang hvis les eller skriv av XML feiler. Når programmet starter, kan du trykke knappen for å lage en ny tabell. Du kan endre i dataene, slette og legge inn nye, og lagre ut som XML til slutt. Når programmet startes på nytt seinere, kan du enten lese inn den lagrete XML-filen, eller lage ny tabell. En annen ting: Jeg har ikke Forms Designer her, bruker bare Notisblokk for å gjøre alt. using System; using System.ComponentModel; using System.Data; using System.Drawing; using System.Windows.Forms; public class Form1 : System.Windows.Forms.Form { private System.ComponentModel.Container components; private Button button1; private Button button2; private DataGrid myDataGrid; private Button button3; private DataSet myDataSet; private bool TablesAlreadyAdded; public Form1() { // Required for Windows Form Designer support. InitializeComponent(); } protected override void Dispose( bool disposing ){ if( disposing ){ if (components != null){ components.Dispose();} } base.Dispose( disposing ); } private void InitializeComponent() { // Create the form and its controls. this.components = new System.ComponentModel.Container(); this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button(); this.myDataGrid = new DataGrid(); this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.Text = "DataGrid Control Sample"; this.ClientSize = new System.Drawing.Size(450, 330); button1.Location = new Point(24, 16); button1.Size = new System.Drawing.Size(90, 24); button1.Text = "Lag tabell"; button1.Click+=new System.EventHandler(button1_Click); button2.Location = new Point(124, 16); button2.Size = new System.Drawing.Size(90, 24); button2.Text = "Les XML"; button2.Click+=new System.EventHandler(button2_Click); button3.Location = new Point(224, 16); button3.Size = new System.Drawing.Size(90, 24); button3.Text = "Skriv XML"; button3.Click+=new System.EventHandler(button3_Click); myDataGrid.Location = new Point(24, 50); myDataGrid.Size = new Size(300, 200); myDataGrid.CaptionText = "Microsoft DataGrid Varelager"; this.Controls.Add(button1); this.Controls.Add(button2); this.Controls.Add(button3); this.Controls.Add(myDataGrid); } public static void Main() { Application.Run(new Form1()); } protected void button1_Click(object sender, System.EventArgs e) { if(TablesAlreadyAdded) return; MakeDataSet(); /* Bind the DataGrid to the DataSet. The dataMember specifies that the Varelager table should be displayed.*/ myDataGrid.SetDataBinding(myDataSet, "Varelager"); } protected void button2_Click(object sender, System.EventArgs e) { if(TablesAlreadyAdded) return; // Create a DataSet. myDataSet = new DataSet("myDataSet"); myDataSet.ReadXml("Varelager.xml", XmlReadMode.ReadSchema); /* Bind the DataGrid to the DataSet. The dataMember specifies that the Varelager table should be displayed.*/ myDataGrid.SetDataBinding(myDataSet, "Varelager"); } protected void button3_Click(object sender, System.EventArgs e) { myDataSet.WriteXml("Varelager.xml", XmlWriteMode.WriteSchema); } // Create a DataSet with one tables and populate it. private void MakeDataSet() { // Create a DataSet. myDataSet = new DataSet("myDataSet"); // Create one DataTable. DataTable tVare = new DataTable("Varelager"); // Create three columns, and add them to the first table. DataColumn cVarenr = new DataColumn("varenr", typeof(int)); DataColumn cVarebeskrivelse = new DataColumn("Varebeskrivelse"); DataColumn cBeholdning = new DataColumn("Beholdning", typeof(int)); tVare.Columns.Add(cVarenr); tVare.Columns.Add(cVarebeskrivelse); tVare.Columns.Add(cBeholdning); // Add the table to the DataSet. myDataSet.Tables.Add(tVare); /* Populates the tables. */ DataRow newRow1; // Create three entries in the Varelager Table. for(int i = 1; i < 4; i++) { newRow1 = tVare.NewRow(); newRow1["varenr"] = i; // Add the row to the Varelager table. tVare.Rows.Add(newRow1); } // Give each customer a distinct name. tVare.Rows[0]["Varebeskrivelse"] = "Hammer"; tVare.Rows[1]["Varebeskrivelse"] = "Rørtang"; tVare.Rows[2]["Varebeskrivelse"] = "Spiker"; // Give the Beholdning column a value. tVare.Rows[0]["Beholdning"] = 12; tVare.Rows[1]["Beholdning"] = 3; tVare.Rows[2]["Beholdning"] = 8000; TablesAlreadyAdded=true; } } Lenke til kommentar
Klette Skrevet 13. august 2004 Forfatter Del Skrevet 13. august 2004 Supert! Får det til å fungerer relativt greit nå, men en ting, hvordan kan jeg få radene til å autoresize seg selv til størrelsen av datagriden? (slik at det ikke blir dødplass etter de) Lenke til kommentar
MagneH Skrevet 13. august 2004 Del Skrevet 13. august 2004 Du må bruke DataGridColumnStyle og DataGridTableStyle. Lenke til kommentar
aeiopop Skrevet 10. september 2004 Del Skrevet 10. september 2004 Jeg syness den letteste måten å lagre små mengder data på er egne objekter i en objectstream. men det gjør det kanskje ikke noe lettere å presentere data'ene da... Lenke til kommentar
Toddy Skrevet 10. september 2004 Del Skrevet 10. september 2004 Lag objekter og putt dem inn i en HashTable HashTable dataSett = new HashTable(); Data data = new Data("Hei","hopp"); dataSett.put("data.dit",data); printf("dataSett.get(Hei).dat"); class Data{ string dit = hei; string dat = hallo; Data(string t, string s){ this.dit = t; this.dat = s } } Kompilerer sikkert ikke siden dette er skrevet på 30 sek men utskriften blir "Hallo" når programmet kjøres. Man kan lagre relativt store datastrukturer på denne måten. Lenke til kommentar
FlexGym Skrevet 10. september 2004 Del Skrevet 10. september 2004 Hva med å bruke en database? Ja for eks access (lag med modulator) Lenke til kommentar
GeirGrusom Skrevet 12. september 2004 Del Skrevet 12. september 2004 Hatt IT på skolen nå? Modelator er et drittprogram, fullt av feil og møkk. Det er enklere å skrive en database i SQL en å bruke det greiene der, og Access egner seg dårlig til noe annet en CD samlinger. Lenke til kommentar
FlexGym Skrevet 12. september 2004 Del Skrevet 12. september 2004 Hatt IT på skolen nå? Modelator er et drittprogram, fullt av feil og møkk. Det er enklere å skrive en database i SQL en å bruke det greiene der, og Access egner seg dårlig til noe annet en CD samlinger. nei-vet modulator er full av feil. men ettervert lærer man å gå rundt feilene. tar iallefall kortere tid enn å tegne alt inn i access Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå