Zum Inhalt springen

daTom

Mitglieder
  • Gesamte Inhalte

    88
  • Benutzer seit

  • Letzter Besuch

  1. Ok ist ganz einfach... Es gibt eine Klasse ControlPaint, mit der kann man sämtliche Windows Standard-Steuerelemente auf ein Graphics zeichnen.
  2. Hi, ich soll eine Art Designer entwickeln, ähnlich wie der Form Designer im Visual Studio. Hierbei sollen im ersten Schritt lediglich 4 Controls auf einer Form (in dem Fall ein Panel) erstellt werden können. Weiß vielleicht jemand von euch, ob und wie ich die Steuerelemente der ToolBox von Visual Studio für mein eigenens Programm benutzen könnte? Ich würde am liebsten gerne vermeiden die Controls selber zu zeichnen. Gruß
  3. daTom

    Ado.Net Tabelle updaten

    Hallo Amstelchen, da ist mir beim kopieren wohl ein Fehler unterlaufen. Sie sind natürlich in Anführungszeichen gesetzt. Ich bekomme ja auch keinen Compiler-Fehler. Der wäre ja auch ziemlich eindeutig Ne, mein Problem ist, dass die Tabelle halt nicht upgedatet wird. Gruß daTom
  4. Hallo Argbeil, danke für die Erklärung. Jetzt ist es doch um einiges klarer. Gruß daTom
  5. Hallo, ich muss euch mal wieder um Hilfe bitten, da ich absolut nicht weiß wie ich das angehen soll. Ich habe ein Grid auf einer aspx-Seite, in dem ich es erlaube in einer bestimmten Spalte mit Hilfe einer Checkbox ein Flag auf "erledigt" oder "nicht erledigt" zu setzen. Zudem muss der Benutzer in einer TextBox ein Kürzel eintragen, mit der er die Veränderung des Datensatzes bestätigt. Nun möchte ich halt, dass die veränderten Datensätze auch in der Datenbank gespeichert werden. Nur leider scheitert es hier an meinen bislang mangelden Ado.NET - Kenntnissen. Zuerst mal das Statement: public static string sql = UPDATE positions SET done = :Done, worker = :Worker WHERE ID = :ID Bei der Datenbank handelt es sich im Übrigen um eine Oracle-Datenbank. Nun der entscheidene Auszug aus meiner Datenschicht: using (OracleConnection connection = this.OpenConnection()) { OracleCommand cmd = new OracleCommand(sql, connectionString); cmd.Add(new OracleParameter(":Worker", OracleType.VarChar)); cmd.Add(new OracleParameter(":Done", OracleType.Boolean)); cmd.Add(new OracleParameter(":ID", OracleType.Int32, 20, "id")); cmd.Parameters[":ID"].SourceVersion = DataRowVersion.Original; cmd.Parameters[":Bearbeiter"].Value = //Text aus der Textbox cmd.Parameters[":Done"].Value = Wert aus dem Grid OracleDataAdapter adapter = new OracleDataAdapter(); adapter.UpdateCommand = cmd; int affectedRows = adapter.Update(dataRows); return affectedRows; } Leider funktioniert das ganze nicht wirklich. Eine Exception erhalte ich nicht, aber die Update Methode liefert immer 0 zurück. Das dataRows ist ein Array von DataRows die ich mit der Methode ds.Tables["ToDoData"].Select(null, null, DataViewRowState.ModifiedCurrent) erhalte. In dem Array stecken dann auch tatsächlich alle veränderten Zeilen als DataRows. Hat jemand einen Tip für mich? So langsam verzweifel ich daran. Aus der MSDN Dokumentation werde ich leider nicht schlau. Gruß daTom
  6. Ok, ich habe eine Lösung gefunden. Ich habe eine Global.asax Datei erstellt. In der Methode Session_Start lege ich nun den Ordner mit der ID an und speicher mir den absoluten Pfad in einer Session Variable. Analog dazu hol ich mir in der Session_End Methode den Pfad aus der Session Variable heraus und lösche das Verzeichnis mit der absoluten Pfadangabe. Server.MapPath kann man leider nicht in der Session_End Methode verwenden, deswegen muss ich den Schritt mit der absoluten Pfadangabe machen. Gruß
  7. Hallo, ich versuche gerade die using-Anweisung in C# zu verstehen. Als kleines Testszenario habe ich mir folgendes ausgedacht: protected OracleConnection OpenConnection() { using (OracleConnection conn = new OracleConnection()) { conn.ConnectionString = this.ConnectionString; conn.Open(); return conn; } } Wenn ich das richtig verstanden habe, sollte doch die using Anweisung dafür sorgen, dass die Dispose-Methode von OracleConnection aufgerufen wird, auch wenn eine Exception nicht gefangen wird?! In meinem kleinen TestCase ist der ConnectionString einfach "...". Das Ergebnis ist allerdings, dass über die nicht gefangene Exception gemeckert wird. Kann mir mal jemand auf die Sprünge helfen?
  8. Hm Sorry, ich kann dir gerade nicht folgen. Oder vielleicht habe ich mich falsch ausgedrückt?! Wenn ich die neue Column an die DataTable anfüge, so wie du es vorgeschlagen hast, habe ich das Problem, dass die neue Column nicht an erster Stelle steht (...Tables[0].Columns[0] - ist dann nicht meine neu angefügte Spalte) Meine Frage war, ob ich es irgendwie hinbekomme, dass die neue Spalte an Position 0 steht. Ich hoffe, das ist jetzt etwas verständlicher ausgedrückt
  9. So in der Art hatte ich mir das auch schon gedacht. Allerdings habe ich dann das Problem, dass die hinzugefugte Spalte nicht die erste Spalte ist, sondern dann die letzte Spalte ist. Oder gibt es hierfür auch ne Möglichkeit, die ich noch nicht sehe?
  10. Hi, also ich habe das gerade wie folgt gelöst: DataSet ds = new DataSet(); adapter.fill(ds); DataSet newDs = new DataSet(); DataTable dt = newDs.Tables.Add(); DataColumn dataColumn = dt.Columns.Add("Nr."); dataColumn.AutoIncrement = true; foreach (DataColumn dc in ds.Tables[0].Columns) { dt.Columns.Add(dc.ColumnName); } foreach (DataRow dw in ds.Tables[0].Rows) { dt.ImportRow(dw); } Ist das so ok? Oder gibt es vielleicht noch eine elegantere Lösung?
  11. Hallo, wie kann ich in ein DataSet nachträglich eine ID-Spalte einfügen, die von 0 beginnend hochzählt? Die Daten im DataSet kommen aus einer Datenbank und auf das Stored Procedure habe ich leider keinen Zugriff, sonst würde ich es direkt dort ändern. Ich habe leider überhaupt keinen Ansatz bislang. Danke schon mal
  12. Hallo, ich habe hier eine ASP.NET (3.5) Seite, auf der ein Grid angezeigt wird. Ich habe nun die Anforderung, dass aus dem Inhalt des Grids eine Batch Datei generiert werden soll, die der User dann herunterladen kann. Das Erstellen der Datei und funktioniert wunderbar. Der Download klappt auch soweit, allerdings stosse ich hier auf eine kleine Schwierigkeit, bei der ich gerade nicht weiter weiß. Hier erstmal der Code string fileName = Server.MapPath("Stapel.bat"); System.IO.FileInfo fInfo = new System.IO.FileInfo(fileName); fInfo.Delete(); object oDS = this.Session["data"]; DataSet ds; if (oDS != null && oDS is DataSet) { ds = (DataSet)oDS; StreamWriter sWriter = new FileInfo(Server.MapPath("Stapel.bat")).CreateText(); foreach (DataRow o in ds.Tables[0].Rows) { sWriter.WriteLine("call clb " + o[0].ToString()); } } Response.AddHeader("Content-Disposition", "attachment; filename=" + fInfo.Name); Response.AddHeader("Content-Length", fInfo.Length.ToString()); Response.ContentType = "application/octet-stream"; Response.WriteFile(fInfo.FullName); Response.End(); Mir ist aufgefallen, dass StreamWriter sWriter = new FileInfo(Server.MapPath("Stapel.bat")).CreateText(); die Datei in mein Projektverzeichnis ablegt. Ich weiß nicht wie der Pfad auf dem Server aussehen würde, allerdings liegt hier gerade mein Problem. Dadurch, dass die Datei dort in dem Pfad gespeichert wird, kann es passieren, dass 2 Benutzer gleichzeitig auf den Pfad zugreifen wollen. Das ist natürlich alles andere als schön, allerdings fällt mir im Moment keine gescheite Lösung für das Problem ein. Ich hatte schon überlegt einen Ordner (Zufallszahl) anzulegen, allerdings ist dann das Löschen der Datei beim Beenden der Sitzung etwas schwieriger. Dafür gibt es doch bestimmt eine elegantere Lösung?! Hat jemand von euch vielleicht nen Tip für mich?
  13. Super, vielen Dank. Ich habe es wie folgt gelöst gerade: if (uMsg == WM_DEVICECHANGE) { switch (wParam) { case DBT_DEVICEREMOVECOMPLETE: //irgendwas break; } } Hast du noch eine Idee, wie ich das ganze auf das CD/DVD-Laufwerk beschränken kann? So wie es da oben steht, würde der Event auch für einen USB-Stick behandelt werden. Es soll aber ausschließlich nur für das Laufwerk gelten.
  14. Hallo, kann man mittels WINAPI prüfen, wann das CD/DVD-Laufwerk geöffnet wird? Ich muss in einer Installationsroutine darauf reagieren, wenn die CD während der Installation ausgeworfen wird. Gruß daTom
  15. Mathe liegt schon was länger zurück Das mit dem auf- und abrunden hab ich aber schonmal gehört Ne es hätte ja sein können, dass es bei ungerade Zahlen eine bestimmte Regelung gibt. Dann bin ich mal gespannt, ob und wieviel Urlaub ich dann zum Ende hin noch bekomme. Danke noch mal

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...