Laden...
I
Ishildur myCSharp.de - Member
Programmierer Schweiz Dabei seit 15.09.2005
Benutzerbeschreibung

Forenbeiträge von Ishildur Ingesamt 431 Beiträge

26.09.2005 - 08:56 Uhr

Also das funktioniert irgendwie nicht so richtig


     // define and create a insert - command
     String strIns = "INSERT INTO Person(Title,Name,Prename,Birthdate,Adress,Zip,Place,";
     strIns += "Country_ID,TelPriv,TelBusi,FaxPriv,FaxBusi,MobPriv,MobBusi,MailPriv,MailBusi,";
     strIns += "Website,JoinDate) VALUES(@Title,@Name,@Prename,@Birthdate,@Adress,@Zip,";
     strIns += "@Place,@Country_ID,@TelPriv,@TelBusi,@FaxPriv,@FaxBusi,@MobPriv,@MobBusi,";
     strIns += "@MailPriv,@MailBusi,@Website,@JoinDate);SELECT @@IDENTITY;";
     strIns += "INSERT INTO Customer(Person_ID,Corporation,Travel,Mailing)";
     strIns += "VALUES(@IDENTITY,@Corporation,@Travel,@Mailing)";
     this.sqlAdp.InsertCommand = new SqlCommand(strIns,this.sqlCon);

     // add the needed parameters to the command
     foreach(DataColumn col in this.sqlSet.Tables[0].Columns)
      this.sqlAdp.InsertCommand.Parameters.AddWithValue(col.Caption,row[col.Caption]);

     // add the row to the dataset and update the datasource
     this.sqlSet.Tables[0].Rows.Add(row);
     this.sqlAdp.Update(new DataRow[] { row });

SqlException:
Must declare the scalar variable "@IDENTITY".

26.09.2005 - 08:47 Uhr

Naja, als ich immer die Wahl hätte... X(

26.09.2005 - 08:41 Uhr

Hallo zusammen, ich habe Probleme mit dem Löschen eines Datensatzes. Im DataViewGrid verschwindet er zwar, aber in der Datenbank ist er dennoch vorhanden...
Woran könnte das liegen?


if(MessageBox.Show(strQst,"Frage",MessageBoxButtons.YesNo,
    MessageBoxIcon.Question) == DialogResult.Yes) {
    // begin a serialized transaction, insert the data and commit
    SqlCommand sqlCmd  = this.sqlAdp.DeleteCommand = new SqlCommand();
    sqlCmd.Connection  = this.sqlCon;
    sqlCmd.Transaction = this.sqlCon.BeginTransaction(IsolationLevel.Serializable);

    // determine and execute a delete - command
    sqlCmd.CommandText = "DELETE FROM Person WHERE Person_ID = 2";
    sqlCmd.Parameters.AddWithValue("Person_ID",row["Person_ID"]);

    // remove the row from the dataset and update the database
    this.sqlSet.Tables[0].Rows.Remove(row);
    this.sqlAdp.Update(this.sqlSet.Tables[0]);
    this.sqlAdp.DeleteCommand.Transaction.Commit();
   }

Gruss Ishildur

26.09.2005 - 08:39 Uhr

Hallo zusammen, wenn ich nun einen Parametrisierten SqlCommand erzeuge, sollte der doch eigentlich die Parameter selbst erzeugen können? Geht dass, und wenn ja wie?

Im Moment mache ichs so:


   SqlParameter[] sqlPrm = new SqlParameter[this.sqlSet.Tables[0].Columns.Count];
   for(int i=0;i<this.sqlSet.Tables[0].Columns.Count;++i) {
    sqlPrm[i] = cmdIns.CreateParameter();
    sqlPrm[i].ParameterName = this.sqlSet.Tables[0].Columns[i].Caption;
    sqlPrm[i].SourceColumn  = this.sqlSet.Tables[0].Columns[i].Caption;
   }
   cmdIns.Parameters.AddRange(sqlPrm);

Müsste das nicht irgendwie einfacher gehen?

25.09.2005 - 14:40 Uhr

Naja der Titel sagt schon alles... 🙂
Ach ja, in einer Combobox

25.09.2005 - 12:22 Uhr

Such mal im SDK nach RowUpdating RowUpdated

Was hat denn das mit dem oben beschriebenen Problem zu tun? 🤔

25.09.2005 - 12:20 Uhr

Kann ich den Build dennoch bekommen? Ich habe ein wenig bammel, dass, wenn das Projekt dann fertig ist und mein Chef eine Vollversion des Visual Studio .NET erwerben wird, dieses Projekt schliesslich auf Grund der "kleinen" Änderungen nicht mehr funktioniert wird... X(

25.09.2005 - 10:27 Uhr

@Noodles
Ich bin kein MSDN Subscriber
Ich habe die Team Suite 2 meinem früheren Chef für 50 sFr. Abgekauft, um es zu testen. Gibt es eine Möglichkeit, die RC Version herunterzuladen, ohne MSDN - Subscriber zu sein?

Ist dies nur ein Update oder eine komplett neue Version?

25.09.2005 - 10:13 Uhr

Was ist RC? ?(

Übrigens, wenn ich den ganzen code im Form_Shown mache, funktioniert alles bestens, das ist doch eigenartig? 🤔

Ich habe auch mehrere neue Projekte angelegt mit immer demselben Resultat! X(

25.09.2005 - 10:02 Uhr

Mit dem SQL Server 2005
Ich frage mich, ob es da wirklich keine implementierte Lösung gibt ? 8o Das mit dem zusätzlichen Feld habe ich in MySQL Datenbanken immer so gemacht, nun bin ich schon ein wenig enntäuscht, dass ich dies bei TSQL auch tun muss.

Ich habe noch ein zeites Problem:
Ich will einen Hauptdatensatz und anschliessend einen Detaildatensatz in zwei dafür vorgesehen Tabellen einfügen.

Schritt 1: Datensatz in Haupttabelle einfügen...
Schritt 2: Den neu erzeugten Primärschlüssel auslesen, lastID oder sowas...
Schritt 3: Datensatz in Detailtabelle einfügen mit dem neu erzeugten Primärschlüssel des im vorherigen Schritt eingefügten Datensatz in der Haupttabelle

Problem: Wenn zwischen Schritt 1 und Schritt 2 jemand anderes ebenfalls einen Datensatz in die Haupttabelle einfügt, dann bekomme ich ja den Primärschlüssel dessen Datensatz anstatt desjenigen, welcher ich eingefügt habe. Die Konsequenz ist, dass ich meinen Detaildatensatz dem falschen Hauptdatensatz zuordne.

In MySQL konnte ich das Problem nicht lösen. In Interbase gibt es hierzu die Generators. Der Generator erhöht sich automatisch, nicht der Primärschlüssel. Das Autoincrement passiert also ausserhalb der Tabelle.

Wie löst man das Problem?

25.09.2005 - 09:49 Uhr

Gibt es irgendein Update, oder Service Pack für das Visual Studio 2005 Beta Team Edition?

24.09.2005 - 19:37 Uhr

@Noodles
Ich glaube, ich weis jetzt, wieso es bei dir funktioniert und bei mir nicht:
Wenn Das DataGridView zu einem MDI - Child gehört, dann funktionierts nicht!
Was kann die Ursache sein, ich bin echt ratlos...

P.S.
Wenn ich die Zeile
frm.MdiParent = this;
auskommentiere, dann funktioniert alles wie erwartet... 🤔

Ein BUUUGGGGG?? 8o 8o 8o

24.09.2005 - 19:19 Uhr

Pessimistisches / Optimistisches Sperren?
Das sagt mir irgentwie überhaupt nichts...

24.09.2005 - 18:19 Uhr

Ich habe noch eine zweite Frage:
Wie kann ich eigentlich Datensätze auf dem Server sperren.
Wenn also Benutzer (A) einen bestimmen Datensatz am bearbeiten ist, so sollte ihn Benutzer (B) ja nicht gleichzeitig bearbeiten können, sonst überschreiben Sie sich ja gegenseitig die Änderungen ?

24.09.2005 - 17:57 Uhr

Hallo Leute, nehmen wir einmal an, ich habe zwei Tabellen: In einer Tabelle sind Auträge, in der anderen Rapporte gespeichert. Nun gehört ein Rapport immer zu einem Auftrag, ein Auftrag muss aber nicht zwangsläufig ein Rapport haben. Der entsprechende Fremdschlüssel in der Auftragstabelle kann also <null> sein.

Nun habe ich ein DataGridView, in welchem diese zwei Tabellen in einem Grid zusammengelegt werden. Wenn nun kein Rapport vorhanden ist, so bleiben einfach die entsprechenden Spalten dieser Zeile leer.

So bis dahin kein Problem. Doch wie schreibe ich nun das INSERT - Command des darunterliegenden DataAdapters?
Also, ich muss ein Insert Query für den Rapport machen. Dann wird diesem mit Autoincrement eine eindeutige ID - zugewiesen. Und nun? Nun muss ich diesen ja erst auslesen, bevor ich den INSERT - Befehl für die Aufgaben - Tabelle ausführen kann, da ich ja dessen Primärschlüssel hier als Fremdschlüssel benötige!

Wie soll das gehen?

In Delphi konnte man den entsprechenden Event onInsert abfangen und konnte dort alles machen, was man benötigte, doch hier ist dies ja leider nicht mehr möglich? Nun muss man es in einem einzigen Befehl machen?
Ich habe mir natürlich auch überlegt, dass ganze in eine Stored Procedure zu schreiben, doch dann läuft dieses Programm nur noch mit dem SQL - Server von Microsoft...

Ich hoffe, jemand kann meine Frage beantworten, andernfalls fange ich an, ernsthaft an der Glaubwürdigkeit dieser Entwicklungsumgebung zu zweifeln!

Ich bin hier absolut neu, dass ist mir schon klar, desshalb frage ich auch. Doch wenn mir niemand eine akzeptable Antwort geben kann, muss ich davon ausgehen, dass es nicht möglich ist oder zumindest niemand einen Plan hat, wie man dies realisieren könnte.

Ich staune einfach immer wieder, auf welche Probleme ich mit dieser Entwicklungsumgebung stosse, welche bei Delphi überhaupt kein Thema waren...

24.09.2005 - 17:39 Uhr

Na toll!!! Da fällt mir nichts mehr ein... 🙄

24.09.2005 - 16:07 Uhr

public partial class FRM_CustomerList:Form {
  // dynamic members
  SqlConnection  sqlCon;
  SqlDataAdapter sqlAdp;
  DataSet         sqlSet;

  public FRM_CustomerList(SqlConnection sqlCon) {
   this.sqlCon = sqlCon;
   this.sqlAdp = new SqlDataAdapter();
   this.sqlSet = new DataSet();
   InitializeComponent();
  }

  private void FRM_CustomerList_Load(object sender,EventArgs e) {
   this.sqlAdp.SelectCommand = new SqlCommand("SELECT * from Country",this.sqlCon);
   this.sqlAdp.Fill(this.sqlSet);
   this.dtaTst.DataSource = this.sqlSet.Tables[0];
   this.dtaTst.Columns[0].Visible = false;
}
}

24.09.2005 - 15:50 Uhr

OK, ich bin einen Schritt weiter: Es funktioniert nur dann nicht, wenn ich es im FormLoad Event mache. Mache ich es zu einem späteren Zeitpunkt, funktioniert es! Woran kann das liegen?

24.09.2005 - 15:26 Uhr

Also bei mir funktioniert das nicht!!! 8o

Selbst folgendes hat absolut keine Auswirkung:


this.dtaViw.Columns.Clear();

Anschliessend sind trotzdem alle Spalten da, es hat sich rein gar nichts verändern, Scheisse!!!!

24.09.2005 - 15:00 Uhr

Hallo zusammen, ich kriege es einfach nicht hin, gewisse Spalten in einem DataGridView unsichtbar zu machen oder deren Spaltentitel umzubenennen. Weiss jemand von euch, wie das geht?

Folgendes hat leider nicht funktioniert:


 this.dtaViw.Columns["Customer_ID"].Visible = false;
 this.dtaViw.Columns["General_ID"].Visible  = false;

Gruss Ishildur

24.09.2005 - 12:56 Uhr

@FZelle
Ich habe nun das gesammte Buch gelesen, doch da sind leider nur absolut triviale Dinge drinnen, nicht eine einzige 1:n Beziehung, geschweige denn m:n Beziehungen, Vererbung oder Rekursionen... 🙄

Ich post mal ein Ausschnitt aus meinem Sourcode, die Frage habe ich direkt in den Source gepostet:


// define and create a select - command
   String strSel = "SELECT * FROM Customer LEFT JOIN Person ON ";
   strSel += "Customer.Person_ID = Person.Person_ID";
   SqlCommand cmdSel = new SqlCommand(strSel,this.sqlCon);

   // define and create a insert - command
   String strIns = "INSERT INTO Person(Title,Name,Prename,Birthdate,Adress,Zip,Place,TelBusi";
   strIns += ",TelPriv,FaxBusi,FaxPriv,MobBusi,MobPriv,Email,Website,JoinDate) VALUES(";
   strIns += "@Tit,@Nme,@Prn,@Brd,@Adr,@Zip,@Plc,@TelBsi,@TelPrv,@FaxBsi,@FaxPrv,";
   strIns += "@MobBsi,@MobPiv,@Mai,@Web,@Joi)";
   SqlCommand cmdIns = new SqlCommand(strIns,this.sqlCon);

   // hier habe ich nun ein Problem, denn der Datensatz muss ja dann irgendwann eingefügt werden.
   // Dadurch wird eine neue ID auf dem SQL - Server erzeugt, welche ich dann auslesen muss, bevor ich in einem zweiten Schritt
   // den Eintrag in die Customer Table machen kann. Wie mache ich denn dass?
   // Natürlich könnte ich zwei Insert Befehle hintereinander schreiben,
   // doch die ID des Eintrages in der Tabelle General bekomme ich ja erst, wenn dieser bereits eingefügt wurde!!

   // fill the sql - data into the dataset
   this.sqlAdp.SelectCommand = cmdSel;
   this.sqlAdp.Fill(this.sqlSet);

   // assign the dataset to the view and navigator
   this.dtaSrc.DataSource    = ds.Tables[0];
   this.dtaViw.DataSource    = this.dtaSrc;
   this.dtaNav.BindingSource = this.dtaSrc;
   
   // invisible unneeded columns
   // ***************************** Frage **********************************
   // Diese beiden Zeilen haben überhaupt keine Auswirkung auf das DataView, woran liegt dass?
   this.dtaViw.Columns["Customer_ID"].Visible = false;
   this.dtaViw.Columns["General_ID"].Visible  = false;
   // **********************************************************************

24.09.2005 - 09:36 Uhr

Hallo zusammen. Gibt es eine Möglichkeit, eine Portnummer im ConnectionString eines SqlConnection objekts zu definieren und wenn ja wie?

Funktioniert dieser bei Hostnamen sowie IP - Adressen gleich?

Gruss Ishildur

22.09.2005 - 19:48 Uhr

@Rainbird
Naja, da hast du schon recht, doch bisher habe ich keine Möglichkeit gefunden, um zu unterscheiden, ob keine Verbindung zum Server aufgenommen werden konnte, oder ob der Datenbank - Server das Login nicht akzeptiert hat, oder ob die gewünschte Datenbank nicht vorhanden ist, oder ob es ein Problem mit der SSL - Verschlüsselung gibt, oder, oder, oder...

Ich kann doch dem Benutzer nicht einfach sagen: Naja, es hat halt nicht geklappt, warum? Weiss ich doch nicht!! 😉

22.09.2005 - 19:45 Uhr

using(FRM_Connection frm = new FRM_Connection()){
// sind diese zwei Zeilen nötig der erledigt dies das Schlüsselwort using bereits ?(
frm.Close();
frm.Dispose();
}

Gruss Ishildur

21.09.2005 - 19:21 Uhr

@Programmierhans

Weiss du wieso ich mich auf Teufel komm raus nicht mit diesem Server verbinden kann?

Server=localhost;Connection Timeout=4;Database=QSA;Encrypt=False;UID=Janus;PWD=k;

Fehler: Cannot open database &quot;QSA&quot; requested by the login. The login failed.\r\nLogin failed for user 'Janus'.

Was könnte das bedeuten??? Langsam bekomme ich das Gefühl, der Kerl hat was gegen mich 😜

21.09.2005 - 18:36 Uhr

OK, das mit dem Window-Authentication mode habe ich hingekriegt und Permissions kann ich auch verteilen, nur das Anlegen von neuen Benutzern funktioniert noch nicht...

21.09.2005 - 17:19 Uhr

Irgendwie komme ich mir gerade ein wenig blöd vor, aber ich habe ech kein Plan, wie ich in einer SQL - Datanbank neue Benutzer anlegen kann... X(

Ich habs versucht mit dem Microsoft SQL Server Management Studio in Databases -> QAS (Meine Datenbank) dann Rechsklick - >Properties - >Permissions und schliesslich Add Users/Roles. Aber wenn ich da einen Benutzer eingebe sagt er mir anschliessend, dass er das Objekt nicht gefunden hat 🤔 (Naja, deshalb steht doch auf dem Button auch "Add"? Weils noch nicht da ist?

Naja wie auch immer...

Ausserdem habe ich glaub ich bei der Installation gewählt. Window-Authentication only, was sich als wenig Glorreich ergeben hat. Kann ich das noch irgendwie ändern?

Ausserdem habe ich eine Frage, ich komme selbst im Window-Authentication Modus nicht in diese *&%*ç Datenbank:

Server=localhost;Connection Timeout=1;Database=QSA;Encrypt=False;Trusted_Connection=true;

Mit dem Microsoft SQL Server Management Studio kann ich anstandslos auf die Datenbank zugreifen??

21.09.2005 - 16:51 Uhr

Naja, ich möchte für die wichtigsten Fehler eine eigene Nachricht für den Benutzer schreiben, aber wie kann ich den Fehler unterscheiden?
Status kommt nicht in Frage, der ist einfach immer 0 und
für Number sowie ErrorCode scheint es keine Dokumentationen zu geben...

21.09.2005 - 16:32 Uhr

Hallo zusammen
Das Message - Property der SqlException ist in Englisch, gibt es eine Möglichkeit, das dies in Deutsch kommt? Oder kann mir jemand erklähren, wie ich den ExceptionCode interpretieren soll? In der MSDN gibt es genau 2 Artikel darüber und die besagen lediglich, dass der 32 - Bit Wert 3 Teile enthält. Welche das sind oder welcher wieviele Bits beansprucht soll ich vermutlich in den Sternen lesen... 🤔

21.09.2005 - 13:40 Uhr

@deti61
Ich habs nun selbst rausgefunden.

  1. Der Bytestrom wird ja kopiert, aus diesem Grunde muss der Reader nicht geschlossen werden.

  2. Ich hatte für OpenSubKey den falschen Konstruktor gewählt, denn dieser Konstruktor setzt bWritable auf false... Warum auch immer....

if((key = Registry.CurrentUser.OpenSubKey("Software\Kyrosoft\QAS",true)) == null) return;

Und dann ruuults...

21.09.2005 - 12:08 Uhr

Naja, in der 3 - Untersten Zeile wird eine Exception ausgelöst, wenn ich versuche, den Korrupten Registrywert zu entfernen...
Ich habs im Quellcode gepostet

Die Exception heisst : UnauthorizedAccessException

An den Rechten kann es allerdings nicht liegen, denn in einer anderen Mehtode mache ich genau dasselbe und da funktionierts

21.09.2005 - 12:05 Uhr

Soll dass etwas heissen, es ist nicht möglich ?? 8o

21.09.2005 - 12:02 Uhr

Hat jemand von euch eine Idee, wieso plötzlich nicht mehr in die Registry geschrieben werden kann?? Was soll denn dass??


// ------------------------ event - handler for the shown - formular ------------------------
  private void FRM_ConnectionManager_Shown(object sender,EventArgs e) {
   // declare and init local variables
   RegistryKey key = null;
   byte[]      dta = null;

   // try to open a registry key and retreive the data or return on failure
   if((key = Registry.CurrentUser.OpenSubKey("Software\\Kyrosoft\\QAS")) == null) return;
   if((dta = (byte[])key.GetValue("con")) == null) return;

   // create a memory - stream from the current registry - value
   BinaryReader rdr = new BinaryReader(new MemoryStream(dta));

   // open a try - statement as the registry - data may be corrupted
   try {
    // start a loop for walking each data - block
    while(rdr.BaseStream.Position < rdr.BaseStream.Length) {
     // create and setup a connectionData - instance
     ConnectionData con = new ConnectionData();
     con.Name       = rdr.ReadString();
     con.Host       = rdr.ReadString();
     con.Timeout    = rdr.ReadByte();
     con.Encryption = rdr.ReadBoolean();
     con.User       = rdr.ReadString();
     con.Password   = rdr.ReadString();

     // create and add a new TreeNode to the TreeView
     TreeNode nod = new TreeNode(con.Name+" ("+con.Host+") ");

     this.trvCon.Nodes[0].Nodes.Add(nod);

     // assign the current connection - data to the current TreeNode
     nod.Tag = con;
    }

    // expand the tree - view
    this.trvCon.Nodes[0].Expand();
   }
   // the registry - data was corrupted
   catch(EndOfStreamException){
    // report the error
    String strErr = "Die Anmeldungsdaten in der Systemregistrierung ";
    strErr += "waren korrupt und wurden entfernt!";
    MessageBox.Show(strErr,"Fehler",MessageBoxButtons.OK,MessageBoxIcon.Error);

    // delete the corrupted data and clear the TreeView

    // ***** WWWWIIIIIIIIIIISSSSOOOOOOOOOOOO?????????? *****
    key.DeleteValue("con"); // MSVC Debugger: Cannot write to the registry key.
    // ******************************************************

    this.trvCon.Nodes[0].Nodes.Clear();
   }

   // close the registry - key
   key.Close();
  }
 // ----------------------------------------------------------------------------------------------

--> Edit by Noodles
Bitte denke etwas nach, bevor Du ein Titel für ein Thema postest!

21.09.2005 - 11:31 Uhr

Hallo Jungs
In Delphi, (Ich bin nicht am nachweinen!!) gab es ein sehr nützliches Konstrukt:

with treeNode.Nodes[0].Nodes do begin
Add("test1");
Add("test2");
end

In C# habe ich dafür zwei mir bekannte Möglichkeiten:

treeNode.Nodes[0].Nodes.Add("test1");
treeNode.Nodes[0].Nodes.Add("test2");

oder

TreeNode tmp = treeNode.Nodes[0].Nodes;
tmp.Add("test1");
tmp.Add("test2");

Nun frage ich mich natürlich, ob es in C# 2.0 nicht ein ähnliches Konstrukt gibt, welches dies kann?

21.09.2005 - 11:02 Uhr

Naja OK, aber weiss nun möglicherweise trotzdem jemand eine Anwort auf die Frage?

21.09.2005 - 10:43 Uhr

Naja, es bringt denke ich bezüglich der Übersichtlichkeit des Codes schon etwas:

SqlConnection sqlCon = new SqlConnection("Data Source=localhost;Connection Timeout=5;Encrypt=true;Database=QAS;Thrusted_Connection=true);

oder
HashTable htb = new HashTable();
htb.Add("Data Source","localhost");
htb.Add("Connection Timeout","5");
htb.Add("Encrypt","true");
htb.Add("Database","QAS");
htb.Add("Thrusted Connection","true");

SqlConnection sqlCon = new SqlConnection(htb.<werweisswas>());

Was sieht nun übersichtlicher aus?

21.09.2005 - 10:08 Uhr

Hallo noch einmal
Ich weiss, ich stelle sehr viel Fragen, ich hoffe, ich gehe euch deswegen nicht auf die Nerven, ich weiss eben nicht, wohin ich mich sonst wenden soll, wenn nicht zu Profis wie euch!

Ich möchte in den Dialogen, dass wenn der Benutzer Return klickt, die OK (DialogResult: OK) aktiviert wird, wenn Er Escape drückt, ann Abbrechen (DialogResult: Abort)

Das sollte doch irgendwie gehen, ohne dass ich den KeyPressed - Event abfangen muss?

Gruss Ishildur

21.09.2005 - 10:03 Uhr

Hei zusammen
Gibt es eine Möglichkeit, in einer DropDownList einen vorselektierten Eintrag zu bestimmen?
Ich meine, ohne dass ich den Form_Load event abfangen muss, nur um dort SelectedIndex = 0 hineinzuwursteln...

Einen lieben Gruss Ishildur

21.09.2005 - 09:11 Uhr

Hallo zusammen
In vielen Applikationen sieht mann doch so eine Horizontale Linie, um gewisse Steuerelemente voneinander optisch abzutrennen Weiss jemand von euch, ob und wie ich soetwas im Designer machen kann?

P.S.
Ich meine nicht eine Groupbox

21.09.2005 - 08:42 Uhr

Hallo ihr Leut
Ich habe mal irgendwo gesehen, dass jemand eine Hashtable benutzt hat, um den ConnectionString eines SqlConnection Objektes zu füllen, nur weis ich leider nicht mehr wo!

Also den Teil kenne ich noch
Hashtable htb = new HashTable();
htb.Add("Data Source","localhost");
usw..

Aber wie extrahiere ich dann die Daten in den ConnectionString. In diesem Beispiel wurde das mit einer einzigen Zeile Code erreicht!

20.09.2005 - 18:13 Uhr

Hallo zusammen, ich bins wiedereinmal
Hat jemand von euch eine Idee, wie ich binäre Daten in die Registry schreiben und anschliessend wieder auslesen kann?

Vielen Dank

20.09.2005 - 16:21 Uhr

Hallo Leute, wieso kann ich denn ein Struct nicht auf null prüfen?

20.09.2005 - 16:05 Uhr

Hallo zusammen
Bisher habe ich Treeviews immer benutzt, um Text darin anzuzeigen, doch nun sollte ich Objekte mit den einzelnen Nodes assozieren. Ich habe mir gedacht: Hey mach doch einfach eine Referenz darauf in das Tag des Nodes. Das funktioniert auch bestens, doch frage ich mich, ob dies der übliche Weg ist?

Ach übrigens.
Ich verwende oft für mehrere Ereignisse denselben Eventhandler. Nun währe es sehr nützlich, wenn ich herausfinden könnte, wer denn das Event gesendet hat. Bei Events, welche von Controls direkt gesendet werden, ist dies natürlich kein Problem, doch bei den Menuitems von Kontextmenu weiss ich zwar, welches Menuitem das Event gesendet hat, jedoch nicht, welches Control das Kontextmenu aufgerufen hat.

Ein Beispiel:
Ich habe 3 Listviews, in welche jeweils Strings hineingetan werden können. Alle 3 Listviews verwenden dasselbe Kontextmenu.
Nun steht natürlich im Parameter Sender des Eventhandler des MenuItem_Click eine Referenz auf das Menuitem, nicht aber auf das jeweilige ListView, welches das Kontextmenu aufgerufen hatte.

Ich habe jenes bisher immer mit (ListView)this.ActiveControl herausgefunden, doch ich frage mich, ob es da nicht eine elegantere Lösung gäbe?

Gruss Ishildur

20.09.2005 - 13:42 Uhr

@FZelle, danke vielmals für die Resourcen, ich werde mir diese Artikel mit Freuden zu Gemüte führen.

@Noodles
Du sagst, ich kann das DataSet selber befüllen, aber wie denn, man kann dem Teil ja keine Datenbankverbindung zuordnen. Verwende ich dann hierfür einfach die herkömmlichen SQLConnection und SQLCommand Klassen?

20.09.2005 - 13:36 Uhr

Natürlich kann ich das, doch es kommt mir so vor, als hätte ich irgendetwas nicht richtig verstanden:

ImageList
Version 2.0.0.0 from Microsoft Corporation .NET Component

Manages a collection of images that are typically used by other controls such as listView, TreeView, or ToolStrip.

Dieser Beschreibung nach zu urteilen, müsste es eigentlich möglich sein, die Icons für ein ToolStrip aus einer ImageList 2.0 zu hohlen, doch ich habe keine Ahnung wie!

Ich bin ehrlich gesagt ein wenig überrascht, dass ich der Einzige zu sein scheine, der sich darüber Gedanken macht?

20.09.2005 - 10:12 Uhr

Hallo zusammen.

Ich arbeite mit Visual Studio 2005 Beta und habe dazu im Zusammenhang mit Datenbanken ein Frage?

  1. Die Parameter für die Datenbankverbindung müssen zur Laufzeit geändert werden können, wie mache ich das? Das mit dem Data->Datasource funktioniert irgenwie nur, wenn ich von Anfang an festlege auf welchen Datenbankserver ich zugreifen will und welche Tabellen ich benötige.

  2. Ich stelle mir das Ganze in etwa folgendermassen vor. Ich möchte meine Daten selbst in das DataSet abfüllen, worauf dieses anschliessend via DataBinding in einem DataGrid ausgegeben wird.
    Am besten wäre es, wenn das DataSet Events aufrufen würden, wenn er Daten benötigt, wenn er einen Datensatz hinzufügen resp. updaten will oder wenn ein Datensatz entfernt werden muss. In diesen Events schreibe ich dann meinen eigenen SQL - Code rein!!
    Das sollte doch möglich sein? Zumindest in Delphi war dies selbstverständlich...

P.S.
Es kann ja nicht sein, dass mir der Datenbankdesigner einfach so mal nebenbei 5000 Zeilen Code in mein Projekt einfügt, was soll denn dass?

19.09.2005 - 19:13 Uhr

Aber auf diese Weise kann ich die Bilder ja nicht mehr Designer zuordnen, oder bringe ich da etwas durcheinander?

19.09.2005 - 13:29 Uhr

Hallo zusammen, ich habe da eine Frage, die mich sehr beschäftigt:
Ich brauche teilweise dieselben Icons in den ListView und TreeView - Controls wie in den MenuStripes. Die MenuStripes greifen aber auf eine Resource zurück, während die ListView und Treeviews eine ImageList wollen. Nun möchte ich die Icons allerdings nicht mehrmals in mein Projekt einbinden! Wie kann ich das erreichen?

Gruss Ishildur

19.09.2005 - 09:24 Uhr

Hallo zusammen
Ich bin gerade dabei, mich in T-SQL einzuarbeiten und habe dazu einige Fragen

  1. Wieso steht in den Scripts vor jedem String ein grosses N?
  2. Wieso heisst meine Datenbank dbo.<datenbank-name>?
  3. Was bedeutet Fulltext - indexing
  4. Was ist der Unterschied zwischen Primary Key, Is Identity und IsRowGuid ?

Vielen Dank schon im Voraus...
Gruss Ishildur

19.09.2005 - 08:30 Uhr

@Noodless
Ich habe nun das gesammte Betriebssystem neu installiert, nun funktioniert alles!
Du hattes übrigens Recht, ich habe noch nachgeschaut, es heisst ja tatsächlich Microsoft...
Und ich habe dies all die Jahre falsch geschrieben... 😉