Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Th69
Thema: Werte werden bei Serialisierung nicht gesetzt
Am im Forum: Grundlagen von C#

Die Namen in der Json-Datei passen nicht zu den Eigenschaften (z.B. ReleaseDate <-> VRelease).

Was soll das V überhaupt bei den Eigenschaftsnamen?

Thema: SQL2019 - INSERT INTO - Inahlt der Variablen werden als "ungültiger Spatenname" angezeigt
Am im Forum: Datentechnologien

Strings (Texte) müssen bei SQL in einfache Anführungszeichen geschrieben werden.
Um aber dies (u.a.) eleganter zu handhaben, gibt es SQL Parameter, s. [Artikelserie] SQL: Parameter von Befehlen.

Thema: Updaten des Excel Sheet 1 mit Daten aus Excel Sheet 2 [gelöst]
Am im Forum: Office-Technologien

Hallo,

sind es denn ältere Excel-Dateien (.xls) oder das neuere Format (.xlsx)? Bei letzterem sollte es mit OpenXML (oder ClosedXML) per C# recht einfach gehen.
Direkt in Excel müßtest du wohl VBA oder Javascript benutzen, aber ob das einfacher (und schneller erstellt) ist?

PS: Du weißt sicherlich, daß HTML keine Tabs zur Formatierung kennt (sondern in Leerzeichen umwandelt - und wie alle Leerzeichen, diese bis auf eins ignoriert)?!
Packe die Tabelle in Code-Tags oder "vorformatierter Text", aber mit Leerzeichen (dazu am besten in Notepad o.ä. mit einen Fixed-Size-Font erstellen und dann kopieren).

Thema: Combobox mit Werten aus TableAdapter füllen
Am im Forum: Datentechnologien

Mit

Spalten.Rows[i]
greifst du auf die ganze Zeile zu, nicht auf ein einzelnes Element (der DataTable) - verwende

Spalten.Rows[i][0]

Edit:
Oder noch schöner, s.a. Beispiel in DataRowCollection:


foreach (DataRow row in table.Rows)
{
  comboBox.Items.Add(row[0]);
}

Und weil ich es gerade noch in deinem Code sehe (typischer Anfängerfehler):


DataTable Spalten = new DataTable();
// ...
Spalten = adapter.GetData();
Die Zuweisung "= new DataTable()" ist überflüssig, da der Variablen ja gleich darauf wieder ein anderer Wert zugewiesen wird.

Und der Name Spalten ist auch mißverständlich (und sollte dataTable o.ä. heißen - und auch als lokale Variable mit einem Kleinbuchstaben anfangen). Vllt. hast du deswegen auch den Fehler nicht gesehen?

Am besten also


DataTable dataTable = adapter.GetData();

Thema: Button in Form ansprechen
Am im Forum: Grundlagen von C#

Auch deine Form solltest du logisch strukturieren, gerade wenn du ein TabControl mit verschiedenen TabPages nutzt, s.a. mein Beitrag in UnterFormular auf MainForm anzeigen (d.h. am besten je TabPage ein eigenes UserControl dafür anlegen).
Bei ähnlichen Registerkarten (TabPages) kannst du auch ein Basis-UserControl (mit den entsprechenden Controls) anlegen und davon dann die konkreten TabPage-UserControls ableiten.

Ergänzung: In dem Basis-UserControl werden dann die Events behandelt (z.B. ButtonClick) und diese rufen dann eine virtual (oder sogar abstract) Methode auf, z.B.


private void ButtonReadData_Click(object sender, EventArgs e)
{
  OnReadData();
}

protected virtual void OnReadData()
{
  // evtl. Standardbehandlung hier ausprogrammieren
}
Und in dem davon abgeleiteten TabPage-UserControl überschreibst du dann diese Methode:


protected override void OnReadData()
{
  // ... (und evtl. base.OnReadData() an passender Stelle aufrufen)
}
(du kannst auch noch passende Parameter für diese Methoden angeben)

Thema: Anmeldungsfehler zum SQL Server beim Starten des Projektes
Am im Forum: Datentechnologien

Ja, das habe ich mir gedacht, aber das erklärt m.E. nicht, warum vorher das Passwort nicht beim ConnectionString angefügt wurde (es geht ja um das Setzen des Passworts und nicht um das Auslesen aus einer bestehenden Verbindung).
Aber du kannst dir merken, daß man Persist Security Info=true aus Sicherheitsgründen nicht setzen sollte: Schützen von Verbindungsinformationen: Verwenden von "Persist Security Info=False"

Thema: Fehler 1053: Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Zeitlimit (1572864 ms)
Das sind über 26 Minuten!?

Thema: Fehler 1053: Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Schau auch mal in die Windows-Ereignisanzeige (event viewer).

Thema: Anmeldungsfehler zum SQL Server beim Starten des Projektes
Am im Forum: Datentechnologien

Mich würde noch interessieren, was sich an den Einstellungen dann geändert hat, nachdem du das Häkchen bei "ja" gesetzt hast.

Thema: .net 6 Plugin Architektur
Am im Forum: Web-Technologien

Dort sind aber nicht die beiden benötigten Referenzen zu sehen. Überprüfe mal, ob du in beiden Projekten die versionsgleichen NuGet-Pakete Microsoft.Extensions.Configuration/5.0.0 und Microsoft.Extensions.DependencyInjection/5.0.2 (das neueste für 5.0) verwendest.

Und noch mal die Frage: von welchem konkreten Typ ist die _services-Variable in deinem RestAPI (Sdk.Web) Projekt?

PS: Außerdem sehe ich gerade, daß dieses Thema ".net 6" heißt, du aber noch ".net 5" benutzt!?!

Thema: .net 6 Plugin Architektur
Am im Forum: Web-Technologien

Nein, das nicht.
Zeige mal die Deklaration der von dir verwendeten konkreten _services-Klasse (also nur die ersten Zeilen, d.h. public class X : ...).

Verwendest du denn dieselben Assemblies (bzw. NuGet-Pakete) für diese Schnittstellen in deinen beiden Projekten?

Thema: .net 6 Plugin Architektur
Am im Forum: Web-Technologien

Probiere es doch ersteinmal mit ein oder zwei Standarddatentypen (string, int, ...) oder nur jeweils einer deiner beiden Interface-Typen als Parameter.
Oder aber du kopierst doch mal die PluginBase-Klasse in dein Plugin-Projekt und rufst dafür dann Activator.CreateInstance auf.

Bei den Schnittstellen muß natürlich dasselbe interface benutzt werden, aber das sollte bei den MS-Klassen ja sichergestellt sein (Microsoft.Extensions.Configuration.ConfigurationRoot implementiert ja (indirekt über IConfigurationRoot) die Schnittstelle IConfiguration).
Und welchen Typ verwendest du für IServiceCollection?

Thema: .net 6 Plugin Architektur
Am im Forum: Web-Technologien

Schau dir mal im Debugger mit Type.GetConstructors() die Parameter an, also GetParameters().

PS: Du kannst auch explizit nach einer bestimmten Überladung suchen: Type.GetConstructor.

Thema: Anmeldungsfehler zum SQL Server beim Starten des Projektes
Am im Forum: Datentechnologien

Nein, es handelt sich hierbei um (WinForms-) Komponenten: Data Components in Visual Studio .NET: Part I

Zitat
Using these components is similar to using any windows control. You just drag the component to a form, set its properties and methods and you're up and running.

Thema: Anmeldungsfehler zum SQL Server beim Starten des Projektes
Am im Forum: Datentechnologien

Was kannst du denn in den Einstellungen für den .NET SqlClient Data Provider bei "Sicherheit" / "Authentication" auswählen?

@Abt: Der Connectionstring wird ja anhand dieser Einstellungen der Datenverbindungs-Komponente erstellt.

Thema: HitTest in ListView ergibt falsche Position
Am im Forum: Grundlagen von C#

Wenn es schon direkt der ListViewRGB untergeordnet ist, dann brauchst du dessen Position (ListViewRGB.Top, ListViewRGB.Left) nicht mehr (und diese sind wohl (45, 2)...):


_tbEdit.Top = _lvSubItemEdit.Bounds.Top + 2;
_tbEdit.Left = _lvSubItemEdit.Bounds.Left + 2;

Thema: HitTest in ListView ergibt falsche Position
Am im Forum: Grundlagen von C#

Wer ist denn der Parent vom _tbEdit?
Und sitzt die ListViewRGB direkt auf der Form oder hast du evtl. noch ein Panel o.ä. als Parent davon?

Das beste ist, du benutzt das ListViewRGB als Parent vom _tbEdit - dann brauchst du nur relativ davon die Position berechnen.

Thema: Anmeldungsfehler zum SQL Server beim Starten des Projektes
Am im Forum: Datentechnologien

Hast du denn mal in den Logdaten des MSSQL-Servers geschaut, was da ankommt?

Thema: Anmeldungsfehler zum SQL Server beim Starten des Projektes
Am im Forum: Datentechnologien

Heißt der User wirklich "Charpuser" und nicht "CSharpuser"?

Thema: .net 6 Plugin Architektur
Am im Forum: Web-Technologien

Hallo,

ich vermute, du verwendest die falsche Überladung, denn deinen Aufruf gibt es so nicht direkt: Activator.CreateInstance (es wird bei dir wohl die (type, params object[]) - Überladung benutzt mit true als ersten Konstruktor-Parameter).

Thema: Anmeldungsfehler zum SQL Server beim Starten des Projektes
Am im Forum: Datentechnologien

Hallo und willkommen,

wie sieht denn der genaue ConnectionString aus (d.h. User/Passwort oder über Windows-Anmeldung)?

Thema: Aussetzter eines Displays per Webcam feststellen
Am im Forum: Grafik und Sound

Hallo,

um ein ganzes Bild auf Dunkelheit zu überprüfen, schau dir mal den Code in How to identify black or dark images in C# an (die dort verwendete Formel für brightness dient zur Umwandlung des Farbbildes in Grauwerte).
Du könntest es noch optimieren, wenn du nicht bei jedem Bild gleich komplett alle Pixel überprüfst, sondern z.B. erst nur ein paar Dutzend und diese dann auf Farben (bzw. Helligkeit) überprüfst.

Wenn du jedoch speziellere Anforderungen hast, könntest du auch eine "Image Processing Library" wie z.B. Emgu CV (basierend auf OpenCV) benutzen.

Thema: Linq to SQL - Klasse kann nicht erstellt werden
Am im Forum: Datentechnologien

OK, ich dachte erst, du hättest evtl. die "LINQ to SQL Tools" nicht installiert: Add Missing LINQ to SQL Classes in VS 2017 and 2019

Welche VS-Version hast du und welchen Projekttyp (.NET 5/6 oder .NET Framework)?

PS: LINQ to SQL wird eigentlich nicht mehr in aktuellen Projekten verwendet, sondern andere ORMs (wie z.B. Entity Framework, Dapper, LINQ to DB, ...).

Thema: Linq to SQL - Klasse kann nicht erstellt werden
Am im Forum: Datentechnologien

Wie genau erstellst du denn diese Klasse?

Thema: Daten lesen, speichern und behandeln
Am im Forum: Grundlagen von C#

Hallo,

so ganz werde ich aus deiner Beschreibung nicht schlau. Möchtest du jetzt eine Binärdatei oder nicht doch einfacher eine Textdatei lesen/schreiben?

Die Farbwerte kannst du als Color speichern. Und "soll maximal 20 char lang sein" erinnert an C-Programmierung (dort würde man dann char[20] verwenden). In C# jedoch einfach nur string (d.h. ein beliebig langer Text), in der Datei könnte dieser aber auf 20 Zeichen begrenzt sein.

Ob nun Struktur oder Klasse, hängt von der Größe und von der Verwendung ab. Hier wäre ein struct m.E. in Ordnung, da für Color (ARGB) ein Int32 verwendet wird und beim String nur die statischen Daten (Größe, interne Referenz auf Daten) direkt beinhaltet.

Thema: Ladebildschirm UI blockiert
Am im Forum: GUI: Windows-Forms

Für einen Ladebildschirm suche einfach mal nach "*Splash*" hier im Forum bzw. schau dir die beiden von mir verlinkten Komponenten in Splash Screen - MainForm im Hintergrund an.

Thema: WPF Elemente mit einem Click Event generieren
Am im Forum: GUI: WPF und XAML

Hallo und willkommen,

du kannst zwar mit C#-Code genauso wie z.B. in Windows Forms, Steuerelemente erzeugen (z.B. mittels UIElementCollection.Add), bei WPF benutzt man jedoch hauptsächlich direkt XAML (z.B. Templates).
Besser ist jedoch, du benutzt (und lernst) gleich die empfohlene Verwendung mittels MVVM: [Artikel] MVVM und DataBinding
Statt mit Events wird bei MVVM dann mit Commands (ICommand) in dem ViewModel gearbeitet.

Thema: Externer Prozess Rückmeldung in Gui
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo und willkommen,

für eine reine Konsolenanwendung wäre dein Code so (einigermaßen) in Ordnung. Bei einer GUI-Anwendung darfst du jedoch niemals den UI-Thread blockieren (z.B. mit cmdProcess.WaitForExit(timeout)), s. [FAQ] Warum blockiert mein GUI?

Verwende das Process.Exited-Ereignis, um auf das Beenden zu warten.

Thema: XML element in XML hinzufügen
Am im Forum: Grundlagen von C#

Orientiere dich mal an How to add Xml node in existing xml file using c#.

XmlNode ist die Basisklasse für alle XML Knotentypen (Document, Element, Attribut, ...).
Daher mußt du zuerst noch den passenden Eintrag suchen (z.B. mit doc.Descendants(...), bevor du dann einen neuen Eintrag hinzufügen kannst.

Und Name, ConfigType sowie Value sind ihrerseits (Unter-)Elemente, keine Attribute.

Thema: Eigenschaft in der IDE ausgegraut
Am im Forum: Grundlagen von C#

Für eine Eigenschaft vom Typ Object kann es aber keine (Unter-)Eigenschaften darstellen, denn es hat keine.
Daher schrieb ich ja auch: "bei konkreten Datentypen". Und dafür kann man mittels eines TypeConverter diese anzeigen lassen, ist aber einiges an Extra-Code, s. z.B. Displaying Nested Child Objects in the Windows Forms Designer Property Grid.

Bei einem eigenen Editor wird ein "..."-Button angezeigt, der den Dialog zum Editieren aufruft (wie z.B. der MultilineStringEditor bei TextBox.Lines).