Werte in Datenbank werden fehlerhaft als Text "System.Win" angezeigt ? Bitte helft

Kai_Jack

Erfahrenes Mitglied
Hi, weiß jemand wieso mir von der TEXTBOX in die Datenbank bei Projekt_Name System.Win eingetragen wird? Es kommt immer dieser Eintrag, das was ich eintippe, verschwindet immer nach dem Klick und in der DB steht "System.Win"
Habs länger versucht, finde den Fehler nicht.
Code:
private void button3_Click_1(object sender, System.EventArgs e)
		{
			SqlConnection cn1 = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;"+"Initial Catalog=Test");
			cn1.Open();
			sqlDataAdapter4.Fill(dataSet11, "Projekt");			

			DataRow thisrow = dataSet11.Tables["Projekt"].NewRow();
			
			thisrow["Projekt_ID"] = "1";  
			string name;
			name = this.textBox3.Text;
			thisrow["Projekt_Name"] = name; 
			dataSet11.Tables["Projekt"].Rows.Add(thisrow);
		

			sqlDataAdapter4.Update(dataSet11, "Projekt");

			cn1.Close();
			

		}

Danke Jack :)
 
Re: Werte in Datenbank werden fehlerhaft als Text "System.Win" angezeigt ? Bitte helf

Den Debugger schon mal benutzt?

Und wozu dieses Konstrukt?
Code:
string name;
name = this.textBox3.Text;
thisrow["Projekt_Name"] = name;
Geht doch auch kürzer:
Code:
thisrow["Projekt_Name"] = this.textBox3.Text;
 
Re: Werte in Datenbank werden fehlerhaft als Text "System.Win" angezeigt ? Bitte helf

Hallo und Danke.

Dies ist nicht die Lösung des Problems. Ich hatte einen Bindingcontext gesetzt, bei den Eigenschaften, dies darf man in diesem Fall, dem Einfügen aber nicht tun. Habe lange gebraucht das rauszukriegen :

Vorteil: Es kommt nie wieder vor :)

Aber mal was anderes, hast du ein Beispiel einer Singletonklasse, die ich mir mal anschauen kann


Gruß Jack
 
Re: Werte in Datenbank werden fehlerhaft als Text "System.Win" angezeigt ? Bitte helf

Mir war schon klar, dass das nicht die Lösung deines Problems war ... vermutlich hast das Binding falsch gesetzt :)

Singleton? Na dann gleich mal aus dem Stegreif:
Code:
public class Singleton {
  
  private static Singleton instance = null;

  private Singleton() {
  }

  public static void GetInstance() {
    if (instance == null)
      instance = new Singleton();

    return instance;
  }
}
Viel Spaß damit. Es gibt natürlich noch weitere Abwandlungen davon. Mehr davon gibts wenn du im Google nach Singleton suchst.

Du kannst allerdings auch einen Multithreaded Singleton erstellen. Schaut nicht viel komplizierter aus (in unterem Beispiel machen wir das ganze über einen Better):
Code:
public sealed class Singleton {

  private static volatile Singleton instance;
  private static object syncRoot = new Object();
  
  private Singleton() {
  }

  public static Singleton GetInstance {
    get {
      if (instance == null) {
        lock(syncRoot) {
          if (instance == null)
            instance = new Singleton();
        }
      }
      return instance;
    }
  }

}
 
Re: Werte in Datenbank werden fehlerhaft als Text "System.Win" angezeigt ? Bitte helf

Oh :p ,

ich glaube ich capici. Die Singleton wird nur einmal instnanziiert, d.h. es ist günstig wenn man eine Klasse zum Öffnen und schliessen von Datanbanken als solche erstellt (z.B.).

Oder

Aber den Unterschied zwischen den beiden versteh ich noch net so ganz

Gruß Jack :)
 
Re: Werte in Datenbank werden fehlerhaft als Text "System.Win" angezeigt ? Bitte helf

Ach so, noch was. Wie ist das mit dieser Klasse, wenn Sie nur instanziiert wird, wenn sie nicht vorhanden ist, dann bedeutet das, sie wird vom Destruktor beendet.

Also kann Sie nur nicht zweimal als instanz erzeugt werden.


Gruß Jack :eek:
 
Re: Werte in Datenbank werden fehlerhaft als Text "System.Win" angezeigt ? Bitte helf

Die Instanz gibt es einmal und wird beim ersten Aufruf gebildet. Bei jedem weiteren GetInstance wird immer die gleiche Instanz zurückgegeben.

Das zweite Beispiel ist einfach zur Threadsicherheit: Wenn zB. mehrere Threads auf auf den Singleton zugreifen, dann solltest die zweite Variante wählen, da mit Locking gearbeitet wird.
 

Neue Beiträge

Zurück