Kære udviklere,
Nu bliver det lidt kryptisk, og jeg skal prøve at forklare mig så godt og forståligt som muligt.
Jeg prøver at lave en metode som kan smide ny data op i tabellen dynamisk hvor man er uafhængig af kolonens navn. Her vil jeg arbejde med loop og index.
column[i] = txt[i].Text
^som overstående viser, kommer min data fra en TextBox (disse vil blive oprettet dynamisk senere). På denne måde vil jeg ikke behøve skrive kolonens navn. Dette vil være til min fordel når jeg copy/paster min kode til et nyt projekt.
Jeg startede med at lave en "demo database", hvor jeg bare brugte en alm. DataTable. Det har jeg fået til at virke fint, men nu ville jeg lave det om til at arbejde med en "rigtig" database.
Koden som virker til DataTable ser således ud:
- public void test(params TextBox[] txt)
- {
- DataTable table = new DataTable("Customers");
-
- DataColumn column = new DataColumn("id");
- DataColumn column2 = new DataColumn("customer");
-
- table.Columns.Add(column);
- table.Columns.Add(column2);
-
- string[] data = new string[] { "Daniele", "Mathias", "Mark" };
-
- for (int i = 0; i < data.Count(); i++)
- {
- DataRow row = table.NewRow();
- row["id"] = i;
- row["customer"] = data[i];
- table.Rows.Add(row);
- }
-
- DataRow new_row = table.NewRow();
-
- for (int i = 0; i < txt.Count(); i++)
- {
- new_row[i] = txt[i].Text;
- }
-
- table.Rows.Add(new_row);
-
- int x = 0;
-
- foreach (var items in table.Rows)
- {
- HttpContext.Current.Response.Write(table.Rows[x]["id"] + " " + table.Rows[x]["customer"] + "<br />");
- x++;
- }
- }
Når jeg så kalder metoden, ser det således ud:
- ...
- CRUD c = new CRUD();
-
- TextBox txt1 = new TextBox();
- TextBox txt2 = new TextBox();
-
- txt1.Text = "4";
- txt2.Text = "Martin";
-
- c.test(txt1, txt2);
- ...
Håber at I kan se hvad jeg vil frem til.
Nu er problemet jo så at jeg vil omskrive koden så den arbejder med en database. Her kommer mit problem så.
- ...
- brugere b = new brugere();
- ...
^overstående kalder på tabellen jeg vil arbejde med. Men mit problem er at jeg ikke ved hvordan jeg får fat på kolonens index.
- ...
- brugere b = new brugere();
-
- for(int i = 0; i < txt.Count(); i++)
- {
- b[i] = txt[i].Text; // <--- det er den kode jeg ikke ved hvordan jeg skal skrive...
- }
-
- db.brugeres.InsertOnSubmit(b);
- db.SubmitChange();
- ...
Nå, det virker ikke. Men så tænkte jeg at jeg bare kunne smide al dataen med min LINQ Query ned i en DataTable, og arbejde med det derfra. Men syntes bare ikke det virker optimalt, og det slet ikke dynamisk.
Håber at der er nogen som kan hjælpe
Indlæg senest redigeret d. 24.01.2013 10:38 af Bruger #16025