28. oktober 2005 - 17:52Der er
32 kommentarer og 1 løsning
Putte data fra MySQL til ArrayList
Jeg har nogle data i en MySQL db, som jeg gerne vil have vist i en ListViewBox. Først skal jeg vel have puttet data'erne ned i et arraylist??? Eller er der en anden måde og gøre det på.
Min ListView indeholder 6 kolonner
ID Fornavn Efternavn Adresse By Fødselsdag
Det skulle gerne ende med, at det der står i databasen. Bliver vist i den listview box. I må endelig spørge hvis i ikke helt forstår spørgsmålet, så skal jeg da prøve og omformulere det:)
Men jeg er helt på bar bund her, håber der er en der kan hjælpe
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Du laver en klasse ved navn Person med 6 private fields, 6 public properties, en constructor uden argumenter, en constructor med 6 argumenter og en ToString metode.
Så laver du en MySqlConnection, en MySqlCommand med din SELECT statement, laver en ExecuteReader som giver dig en MySqlDataReader som du bruger til at hente alle rækker med
For hver række laver du en instans af Person som du tilføjer til din ArrayList
Her en del af den listview System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(new string[] { "ID_ITEM", "Fornavn_Item", "Efternavn_Item", "Adresse_Item", "By_ITEM", "FØD_ITEM"}, -1);
Hvor de der ID_ITEM, Fornavn_ITEM osv gerne skulle skiftes ud med det der står i db'en
using System; using System.Collections; using System.Data;
using MySql.Data.MySqlClient;
namespace E { [Serializable] public class Rec { private int f1; private string f2; public Rec() : this(0, "") { } public Rec(int f1, string f2) { this.f1 = f1; this.f2 = f2; } public int F1 { get { return f1; } set { f1 = value; } } public string F2 { get { return f2; } set { f2 = value; } } public override string ToString() { return ("[" + f1 + "," + f2 + "]"); } }
public class DataGateway { public static ArrayList GetAll() { MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password="); con.Open(); MySqlCommand cmd = new MySqlCommand("SELECT F1,F2 FROM T1", con); ArrayList list = new ArrayList(); MySqlDataReader rdr = cmd.ExecuteReader(); while(rdr.Read()) { list.Add(new Rec((int)rdr[0], (string)rdr[1])); } rdr.Close(); con.Close(); return list; } } public class TestClass { public static void Main(string[] args) { ArrayList list = DataGateway.GetAll(); foreach(Rec r in list) { Console.WriteLine(r); } } } }
Det er altid godt at have en ToString - fordi så kan du bare udskrive r som en del af fejl søgning - det er ganske rigtigt ikke så tit at ToString skal bruges overfor slut brugeren
Hver gang jeg starter applikationen op. Men det er kun første gang den lige skal skrive eller læse fra databasen. Så det er ikke noget der betyder noget
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.