Hallo
Ich habe mir ein kleines Programm geschrieben was Daten aus einer MYSQL Datenbank anzeigt jedoch werden diese zimlich unformatiert angzeigt.
Eine Zeile in der Datenbank ist auch eine zeile in der Listbox.
hier der Code:
connection = new MySqlConnection(myConnectionString);
command = connection.CreateCommand();
command.CommandText = "SELECT * FROM ban";
MySqlDataReader Reader;
connection.Open();
Reader = command.ExecuteReader();
while (Reader.Read())
{
string row = "";
for (int i = 0; i < Reader.FieldCount; i++)
row += Reader.GetValue(i).ToString() + ", ";
listBox1.Items.Add(row);
}
connection.Close();
funktionier auch ganz gut nur würde ich jetzt gerne noch vor jeden Spalten Value was stehen haben
Jetziger listbox eintrag
1 test test test test
So solls aussehen
ID: 1 | Name: test | usw...
Ich würde das ja mit Split machen nur ich will in meiner Datenbank z.b. keine Koma oder andere zeichen wonach ich spliten könnte.
Hat zufällig irgend jemand ein gute lösung für sowas?
Mit bespiel wenn es geht.
Danke im vorraus
Mit Freundlichen grüßen Marcel
EDIT: Okay ich war dumm Split geht doch wunderbar hab mal wieder zu Kompliziert gedacht xD
Naja kennt zufällig wer ne gute alternative zu listbox die wie eine Listbox ist nur mit Spalten.
Ja war nur ein beispiel das Short cut sollen die user nach möglickeit selbst wählen können.
hab die datei einfach aufen Root-Server von mir gespeichert und hab sie von da aus geladen 😉
hab aber noch eine frage und zwar würde ich gerne per Tasten bindings z.b. Die Taste Play aktvieren... wenn ich strg + p drücke. Dies soll auch funktionieren wenn das programm sich im hintergrund befindet.
Ich hab ne datei in den ressources gespiechert mit dem format .asx
wenn ich nun folgenden befehl verwende:
nameDesMediaPlayerObjekts.URL = Properties.Resources.dateiName;
kommt ein fehler bei compilieren > Fehlermeldung:
Fehler: Eine implizite Konvertierung vom Typ "byte[]" in "string" ist nicht möglich.
mit diesem befehl gehts wunderbar:
nameDesMediaPlayerObjekts.URL = "C:\\Users\\Marcel\\Musik\\dateiName.asx";
ich habs auch mit diesen befehl probiert ... ich bekomm zwar kein fehler aber abgespielt wirds trotzdem nicht.
player.URL = Properties.Resources.ResourceManager.GetString("dateiname");
Hallo zusammen,
Ich habe folgendes Probelem...
Ich würde gerne eine sounddatei im format(.asx) abspielen. Jedoch ist es standartmäßig nur möglich wav dateien abzuspielen.
Ich habe in mein Programm die Windows Mediaplayer oberfläche bzw libarys usw. genommen per Element zur Toolbox hinzufügen.
Der Windows Mediaplayer gibt die datei ohne probleme wieder.
Das problem ist ich würde gerne die Windows Mediaplayer oberfläche nicht nutzen aber dennoch die Datei abspielen können. Wie kann ich dies erreichen.
Was ich aber auch noch gerne wissen würde ist wie man ein Sound aus den properties läd für den Windows Mediaplayer.
Der folgende Befehl funktioniert leider nicht.
nameDesMediaPlayerObjekts.URL = Properties.Resources.dateiName;
Mit diesen befehl klappts wunderbar, jedoch wird der Sound dann nicht aus den Properties geladen.
nameDesMediaPlayerObjekts.URL = "C:\\Users\\Marcel\\Musik\\dateiName.asx";
Ich hoffe es weiß jemand eine lösung zu meinen zwei problemen
Mit freundlichen Grüßen Marcel
Wenn ich das richtig verstanden habe müsste es dann so aus sehen.
using (StreamWriter sw = new StreamWriter("Notiz.txt"))
{
for (int i = 0; i <= zahl; i++)
{
foreach (DirectoryInfo dir in )
{
sw.WriteLine(notiz.ZeigeNotiz(i));
}
}
sw.Flush();
}
Jedoch komme ich bei dieser zeile nicht weiter
foreach (DirectoryInfo dir in //was kommt hier hin? )
Hallo,
Ich komme bei einen Notizbuch nicht weiter es eigentlich kompett fertig nur wenn ich das Programm neustarte sind alle Notizen weg.
Nun hab ich mir gedacht okay erstellen wir eine Textdatei und speichern die darin und lesen sie beim start wieder aus.
Leider funktioniert das irgend wie nicht die Textdatei ist bzw. bleibt nämlich leer.
Als Test hab ich schließlich die textdatei mal von Hand beschrieben, dass laden hat leider auch nicht so ganz funktioniert.
Es wurden texte nur geladen wenn ich eine neue Notiz hinzugefügt hab jedoch wurde die neue notiz nun nicht mehr eingetragen, zudem wurde nur eine zeile gelesen bzw. wenn ich noch eine neue notiz erstellt habe wurde die 2 zeile gelesen.
Ich stelle euch mal alles zur verfügung was ich bis jetzt habe ich hoffe irgend wer findet den fehler 😉
GUI KLASSE:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace persoenlichesNotizbuch_V0
{
public partial class NotizbuchForm : Form
{
private Notizbuch notiz;
private int zahl = -1;
private int zahlencounter = 0;
private bool pruefe = false;
public NotizbuchForm()
{
InitializeComponent();
notiz = new Notizbuch();
}
private void speichernButton_Click(object sender, EventArgs e)
{
if (pruefe == false)
{
if (notizTextBox.Text != "")
{
zahl++;
zahlencounter = zahl + 1;
notiz.SpeichereNotiz(zahlencounter.ToString() + ". " + notizTextBox.Text);
notizTextBox.Clear();
}
else
{
MessageBox.Show("Das Eingabefeld darf nicht leer sein!", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
if (notizTextBox.Text != null)
{
notiz.bearbeiten(notizTextBox.Text, notizListBox.SelectedIndex);
notizTextBox.Clear();
}
else
{
MessageBox.Show("Das Eingabefeld darf nicht leer sein!", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
//Speichern in Datei wenn neue Notiz hinzugefügt worden ist
string dateiname = "Notizen.txt";
FileStream datenstrom = new FileStream(dateiname, FileMode.Create, FileAccess.Write);
StreamWriter schreiber = new StreamWriter(datenstrom);
for (int i = 0; i <= zahl; i++)
{
schreiber.WriteLine(notiz.ZeigeNotiz(i));
}
schreiber.Close();
datenstrom.Close();
pruefe = false;
}
}
private void NotizbuchForm_Load(object sender, EventArgs e)
{
// Gespeicherte Notizen Laden
string dateiname = "Notizen.txt";
FileStream datenstrom = new FileStream(dateiname, FileMode.OpenOrCreate, FileAccess.Read);
StreamReader leser = new StreamReader(datenstrom);
while (leser.Peek() != -1)
{
notiz.SpeichereNotiz(leser.ReadLine());
}
leser.Close();
datenstrom.Close();
}
}
}
...
...
Weiter Klasse:
...
...
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace persoenlichesNotizbuch_V0
{
/**
* Die Klasse Notizbuch verwaltet beliebig lange Notizlisten.
* Die Notizen sind nummeriert, um referenziert werden zu können.
* In dieser Version starten die Notiznummern bei 0.
* Autor: Marcel Croonenbroeck
* Version: 03.01.2011
*/
public class Notizbuch
{
// Speicher für eine beliebige Anzahl an Notizen
private ArrayList notizen;
// Führt die Initialisierungen durch, die für ein Notizbuch notwendig sind
public Notizbuch()
{
notizen = new ArrayList();
}
// Speichert eine neue Notiz in diesem Notizbuch
public void SpeichereNotiz(string notiz)
{
notizen.Add(notiz);
}
// Zeigt die Notiz mit der Notiznummer <index> an
public string ZeigeNotiz(int index)
{
if ((index >= 0) && (index < AnzahlNotizen()))
{
return (string)notizen[index];
}
else
{
return "";
}
}
}
}
Danke erstmal für die antwort, jedoch komme ich einfach noch immer nicht weiter 😃
Ich verstehe den Code leider nicht ganz mit get und set, zudem kommt ein error "Die Methode muss ein Rückgabetype besitzen"
Dann ist das das problem mit den Objekt, wie hänge ich den ein Objekt an die Combobox einträge an ich hab gegooglet aber es kam nur jedemenge anderes zeug.
Und wie muss ich nun die Methoden ausführen.
private void comboBox15_SelectedIndexChanged(object sender, EventArgs e)
{
panel1.Backcolor=Klassenname.Farbenname( //comboBox15.Text? );
panel1.Backcolor= Klassenname.Farbe( //comboBox15.Text? );
panel1.Backcolor=Klassenname.ToString() //?
}
Also ich klicke auf einen eintrag z.b. Rot dann wird das Event oben ausgeführt. Nun soll das Panel die farbe ändern.
Nun wie muss ich das nun in der Form bzw. in den oberen Event aufrufen bzw. welche Methode ich nun wo aufrufen muss. Und wie hänge ich jetzt genau ein obejekt an die Combobox einträge?
// Klasse wird aufgerufen wenn eintrag in Combobox geändert wurde
class Klassenname
{
public string Farbenname { get; set; }
public Color Farbe { get; set; }
public override ToString()
{
return Farbenname;
}
}
//FORM
private void comboBox15_SelectedIndexChanged(object sender, EventArgs e)
{
panel1.Backcolor=Klassenname.Farbenname( //comboBox15.Text? );
panel1.Backcolor= Klassenname.Farbe( //comboBox15.Text? );
panel1.Backcolor=Klassenname.ToString()
}
Das hört sich gut an aber wie genau funktioniert das?
Also zuzeit hab ich eine Combobox daneben ein Panel das noch unsichtbar ist bis ein eintrag ausgewählt wird. Nun wird es Sichtbar und soll die farbe bekommen.
Aber wie hänge ich ein Objekt an der Combobox? bzw. immoment verstehe ich das mit den Objekt noch nicht so ganz.
könntest du villeicht ein kleines Code beispiel posten mit ner kleinen erklärung wäre super nett.
MFG Crone
Hallo,
Ich habe mir eine ComboBox genommen die mehrere farben enthält. Je nach auswahl soll das Panel gefärbt werden, da ich dies jedoch öfters brauche und ich den Code meiner Form nicht unnötig lang machen will wollte ich die ganze geschichte per Method bzw. Klasse machen.
public string farbwahl(string box)
{
switch (farbe)
{
case "Rot":
break;
case "Gelb":
break;
case "Grün":
break;
case "Blau":
break;
case "Orange":
break;
case "Pink":
break;
case "Schwarz":
break;
case "Random":
break;
}
Nun das Problem wie kann ich jetzt bestimmen wie sich mein Panel färben soll bzw. wie muss ich das übergeben.
So ändere ich ja die farbe
panel1.BackColor= System.Drawing.Color.Red;
>>>
panel1.BackColor= System.Drawing.Color.nochUnbekannt;
Die noch unbekannte Farbe soll durch einen Methoden aufruf an den Code sozusagen ran gehangen werden da ich ja irgend wie die Farbe ändern muss.
Nun würde ich die ganze sache ja z.b. als String wieder geben und dann in ein Code umwandeln ,wenn sowas geht?!?!?, aber hab einfach nichts gefunden.
Wie kann ich also von einer anderen Methode bzw. Klasse die Farbe des Panels ändern?
Ich weiß sehr kopliziert ausgedrückt wusste einfach nicht wie ich es erklären soll 😃
MFG Marcel
Danke der link hat mich schonmal etwas weiter gebracht das problem ist nun er zeigt mir ein script an^^ ich will nur die zahl die auf der hp steht^^ mehr nit 😉
edit habs geschaft lag an den webspace anbieter der hat ein dummes Java script noch am laufen was er mit angezeigt hat. Aber nun gehts^^
Mhh ich komm einfach nicht weiter ich möchte einfach nur das der string auf der homepage in label übergeben wird und dies soll z.b. jede stunde gemacht werde 😭
Spätestens in der listbox hätte ja irgend wann der String kommen müssen jedoch kam nach einer weile nur der error mehr nicht.
In der html datei steht nur die zahl sonst nichts wenn ich die Homepage aufrufe wird mir die zahl auch angezeigt. Also die html Datei ist soweit korrekt.
Danke schonmal für die schnelle antwort, werds direkt mal mit ner listbox ausprobieren^^
edit: trat folgender fehler auf
Argument NullException wurde nicht behandelt
Der Wert darf nicht NULL sein.
Parametername: item
Was ich villeicht noch sagen sollte es wird mit einem timer jede sekunde aufgerufen.
Hallo zusammen,
Ich wollte von einer Homepage auf der eine Zahle steht diese abrufen und in einem Label ausgeben, doch leider funktioniert dies einfach nicht wie ich das will. Es gibt keine fehler meldung oder so. Ich habe mal in den label was eingetragen und sobald es ausgeführt wird, wird der Inhalt des Labels zwar gelöscht, jedoch wird nichts von der homepage übernommen. Ich hoffe es kann mir wer helfen.
MFG Marcel
Hier der Code:
System.Net.WebClient Client = new WebClient();
Stream strm = Client.OpenRead("http://test/index.html");
StreamReader sr = new StreamReader(strm);
string line;
do
{
line = sr.ReadLine();
label7.Text=line;
}
while (line != null);
strm.Close();
Hallo,
Ich habe folgendes problem ich möchte das mein Programm einmal stündlich Daten von einer Homepage oder Server abruft und diese an einem Label übergibt. Jedoch habe ich keine ahnung wie ich das bewerkställige da ich mich mit web anwendungen bis jetzt nicht wirklich befasst habe. Ich hoffe Ihr könnt mir weiterhelfen villeicht in form eines Tutorials oder Ideenansätzen oder ob es villeicht dafür eine Methode gibt usw;).
hab schon gegoogelt jedoch nix brauchbares gefunden 😭
MFG Marcel
Ja natürlich kein problem war nur schon wieder so sehr vertieft 😉
Also das war schließlich die lösung:
Es fehlte also überall das "On" bei OnKeyDown obwohl es auch ohne gehen müsste und folgende zeile fehlte bei mir:
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.panel1_OnKeyDown);
Hier der mein funktionierende Quelltext.
public Form1()
{
InitializeComponent();
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.panel1_OnKeyDown);
KeyPreview = true; // steht zwar nicht in dem anderem Thread drin aber ohne gehts nicht ;)
private void panel1_OnKeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Escape:
panel1.Visible = true;
e.Handled = true;
break;
}
}
MFG Crone
Ah super danke dir.
endlich funktioniert es;)
P.S:aso zu der regel die du gepostet hast das problem war das einfach nix passiert ist kein fehler usw.
mfg Marcel
Hallo,
Ich habe mich jetzt schon durch zig Toturials geschlagen und habe doch schon einiges hinbekommen, jedoch komme ich nun einfach nicht weiter und hoffe das ihr mir helfen könnt.
Folgendes Problem:
Ich will das auf ein Tastendruck z.b. wenn ich ESC drücke, dass dann mein panel unsichtbar bzw. sichtbar wird.
Ich habe auch schon einiges ausprobiert, folgender quelltext liefert mir kein fehler, jedoch passiert auf Tastendruck nichts.
private void panel_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.E)
{
panel1.Visible = true;
e.Handled = true;
}
}
Kann mir einer sagen wo, da der fehler liegt?
MFG Marcel