[C#] ListView

Badgott

Erfahrenes Mitglied
Hallo leute ich verzweifel hier noch ich komme einfach nicht weiter ich möchte einfach nur in das ListView daten speichern ich poste mal denn Quelltext von der Klasse vieleicht kann mir ja einer helfen der zeigt leider immer nur ein weißes leeres kästchen an :-(

MFG Badgott

PHP:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;

namespace WindowsApplication5
{
	/// <summary>
	/// Zusammendfassende Beschreibung für editUser.
	/// </summary>
	public class editUser : System.Windows.Forms.Form
	{
		private System.Windows.Forms.ListView userList;
		private OleDbDataReader myReader;
		/// <summary>
		/// Erforderliche Designervariable.
		/// </summary>
		private System.ComponentModel.Container components = null;

		public editUser()
		{
			//
			// Erforderlich für die Windows Form-Designerunterstützung
			//
			InitializeComponent();
			userList = initLV(userList);
			userList = selectUsersFromDB(userList);
			userList.Visible = true;
			this.Controls.Add(userList);

			//
			// TODO: Fügen Sie den Konstruktorcode nach dem Aufruf von InitializeComponent hinzu
			//
		}

		/// <summary>
		/// Die verwendeten Ressourcen bereinigen.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if(components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// <summary>
		/// Erforderliche Methode für die Designerunterstützung. 
		/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
		/// </summary>
		private void InitializeComponent()
		{
			this.userList = new System.Windows.Forms.ListView();
			this.SuspendLayout();
			// 
			// userList
			// 
			this.userList.AllowColumnReorder = true;
			this.userList.FullRowSelect = true;
			this.userList.GridLines = true;
			this.userList.Location = new System.Drawing.Point(80, 88);
			this.userList.MultiSelect = false;
			this.userList.Name = "userList";
			this.userList.Size = new System.Drawing.Size(536, 304);
			this.userList.TabIndex = 0;
			// 
			// editUser
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(704, 469);
			this.Controls.AddRange(new System.Windows.Forms.Control[] {
																		  this.userList});
			this.Name = "editUser";
			this.Text = "Benutzer bearbeiten";
			this.ResumeLayout(false);

		}
		#endregion

		private ListView selectUsersFromDB(ListView lv)
		{
				
			OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +
				@"Data Source=C:\db1.mdb;");

			try
			{
				
				
				OleDbCommand myCommand = new OleDbCommand("SELECT anrede, vname, nname, adresse, plz, email, tele, fax FROM userTable", conn);

				conn.Open();

				myReader = myCommand.ExecuteReader();

				while (myReader.Read())
				{
					ListViewItem li = new ListViewItem();
					li.SubItems.Clear();
					li.SubItems.Add(myReader["anrede"].ToString());
					li.SubItems.Add(myReader["vname"].ToString());
					li.SubItems.Add(myReader["nname"].ToString());
					li.SubItems.Add(myReader["adresse"].ToString());
					li.SubItems.Add(myReader["plz"].ToString());
					li.SubItems.Add(myReader["email"].ToString());
					li.SubItems.Add(myReader["tele"].ToString());
					li.SubItems.Add(myReader["fax"].ToString());
				}
				return(lv);
				

				
					
			}			
			finally
			{
				// always call Close when done reading.
				myReader.Close();
				// always call Close when done reading.
				conn.Close();
			}
		}


			private ListView initLV(ListView lv)
			{
				//Table!
				lv.Columns.Add("Anrede", 100, HorizontalAlignment.Left);
				lv.Columns.Add("Vorname", 100, HorizontalAlignment.Left);
				lv.Columns.Add("Nachname", 100, HorizontalAlignment.Left);
				lv.Columns.Add("Adresse", 100, HorizontalAlignment.Left);
				lv.Columns.Add("PLZ", 100, HorizontalAlignment.Left);
				lv.Columns.Add("E-Mail", 100, HorizontalAlignment.Left);
				lv.Columns.Add("Telephone", 100, HorizontalAlignment.Left);
				lv.Columns.Add("FAX", 100, HorizontalAlignment.Left);
				return(lv);
				

			}



		
		
	}
}
 
Original geschrieben von Badgott

myReader = myCommand.ExecuteReader();

while (myReader.Read())
{
ListViewItem li = new ListViewItem();
li.SubItems.Clear();
li.SubItems.Add(myReader["anrede"].ToString());
li.SubItems.Add(myReader["vname"].ToString());
li.SubItems.Add(myReader["nname"].ToString());
li.SubItems.Add(myReader["adresse"].ToString());
li.SubItems.Add(myReader["plz"].ToString());
li.SubItems.Add(myReader["email"].ToString());
li.SubItems.Add(myReader["tele"].ToString());
li.SubItems.Add(myReader["fax"].ToString());
}
return(lv);


Kann auch nicht gehen.
Du kreairst ein neues ListViewItem object und ordnest diesem nicht deiner List view zu sondern gibst diese ungeändert wieder zurück.

Du musst dein ListViewItem der ListViewItemCollection deiner ListView hinzufügen (vor rückgabe lv) dann geht das

lv.Items.Add(li);

PS: Bitte keine Komplett Quelltexte posten
 
Code:
while (myReader.Read())
{
    ListViewItem li = new ListViewItem();
    li.SubItems.Clear();
    li.SubItems.Add(myReader["anrede"].ToString());
    li.SubItems.Add(myReader["vname"].ToString());
    li.SubItems.Add(myReader["nname"].ToString());
    li.SubItems.Add(myReader["adresse"].ToString());
    li.SubItems.Add(myReader["plz"].ToString());
    li.SubItems.Add(myReader["email"].ToString());
    li.SubItems.Add(myReader["tele"].ToString());
    li.SubItems.Add(myReader["fax"].ToString());

}

Irgendwie scheint mir, dass Du zwar ein ListViewItem erzeugst, dieses aber gar nicht dem ListView hinzufügst.

Fehlt da nicht sowas?
Code:
lv.Items.Add(li)
 
hmmmm ok habe ich gemacht aber der zeigt immer noch nichts an :-(
Habe das ganze auch mal so gemacht das eigentlich was kommen müßte.
PHP:
private ListView selectUsersFromDB(ListView lv)
		{
				
			ListViewItem li = new ListViewItem();
			li.SubItems.Clear();
			li.SubItems.Add("test");
			li.SubItems.Add("test");
			li.SubItems.Add("test");
			li.SubItems.Add("test");
			li.SubItems.Add("test");
			li.SubItems.Add("test");
			li.SubItems.Add("test");
			li.SubItems.Add("test");
			lv.Items.Add(li);

			return(lv);
}
 
plapper mir nicht nach goela
Dies ist auf meinem Mist gewachsen und ich habe Dir nicht nachgeplappert. :(
War gerade abgelenkt worden als ich es verfasst habe und habs etwas später abgeschickt als Du! ;)

Macht ja nichts! Ergebnis war ja das selbe!
 

Neue Beiträge

Zurück