Laden...
R
robbyrc myCSharp.de - Member
Fachinformatiker / Anwendungsentwicklung Passau Dabei seit 17.02.2006 317 Beiträge
Benutzerbeschreibung

Forenbeiträge von robbyrc Ingesamt 317 Beiträge

04.11.2007 - 15:54 Uhr

Hi und danke für die PM 🙂

So ins Detail ging meine Anwendung damals leider nicht.
Spontan fällt mir nur ein, dass du zwischen PC und nicht PC mit WMI unterscheiden könntest.

Für den Rest (Netzwerkdrucker, Router, ...) würdest du meiner meinung nach über SNMP die Sachen abfragen müssen.

SNMP mit C#:
http://www.codeproject.com/useritems/SNMPDLL.asp

Grüßle,
Daniel

04.11.2007 - 15:40 Uhr

Hi,

du könntest das direkt in der SQL-Abfrage regeln, dass jweils die anzahl der personen, die gleiche Pflegestufe hat, abgerufen wird.

würde in deinem fall so aussehen:


SELECT PG, COUNT(*) FROM Patienten group by PG

Somit gibt die Abfrage zur jeweiligen Pflegestufe die Anzahl der zugeordneten Personen zurück.

Mfg,
Daniel

04.11.2007 - 15:31 Uhr

hi,

nur mal rein interessehalber, warum verwendest du nicht gleich TCP/IP?
Da müsstest dich nicht um die Sichere Übertragung kümmern?

Mfg,
Daniel

02.11.2007 - 18:09 Uhr

Hi,

unter c# kannst du auch SQLite verwenden, auch der Embedded Firebird ist recht gut zu gebrauchen.

Über die Suche solltest aber genügend zu diesem Thema finden 😉

mfg,
daniel

01.11.2007 - 21:30 Uhr

Hi,

wenn du das so zuweist wird ja nur immer der Wert bei i ans Label zugewiesen.
Beim nächsten mal der Nächste wert.

du musst die Strings ans Label anhängen, z.B. so:


label2.Text += Environment.NewLine + (string.Format("myArray[{0}]={1}\n", i, myArray[i]));

29.10.2007 - 23:00 Uhr

Hi,


String feldname = "City" ;
String variable = "Berlin" ;

myDataview.RowFilter = feldname + " = '" + variable + " ' "; 


mfg,
daniel

29.10.2007 - 07:50 Uhr

Morgen 😉

Das mit dem Fileseitig war mir schon klar.
Nur bin ich halt am Zweifeln ob das so direkt geht.

Bei Firebird oder andren Datenbanken geht es ja nicht, dass die Datenbankdatei an sich auf nem Netzwerk liegt, und dann verwendet werden (zumindestens nach meinem Kenntnissstand).

Vielleicht hilft dir folgendes bei deinem Problem:

NAS devices should always be accessed using UNC names, such as \server\share. In its default state, SQL Server won't allow you to use a UNC path in place of a drive letter. So, you'll need to set a trace flag in order to change this behavior. The trace flag is 1807. If you're not sure how to set a trace flag, you'll want to check out Books Online.

Creating a device on a network path isn't any different from creating one on local storage, provided that the trace flag is turned on. So, if you're creating a database this isn't a big deal. If you need to copy a database from local storage to network storage, there are a couple extra steps. The problem is that the log file uses a different block size if it's on local storage or network storage. Which means it's not possible to use a log file from local storage on a remote storage device. Since the new backup format includes the log file, even if you go through the trouble of emptying out the log file, it isn't possible to use a backup to move data to network storage. Which means you'll need to copy the data file and create a new LDF file. Fortunately, Microsoft provided us with the sp_detach_db and sp_attach_db (and sp_attach_single_file_db) stored procedures. So, detach the database, copy the MDF files to the network device, and then use sp_attach_db (or sp_attach_single_file_db, as appropriate) to attach the database on it's network device. One additional note here, make sure you can checkpoint the database before you detach it. If you can't checkpoint, don't detach, because you won't be able to attach either.

gefunden auf http://www.sqlteam.com/article/sql-server-and-network-attached-storage

28.10.2007 - 23:28 Uhr

Wenn dein User ein Script schreibt, und du liest das dann irgendwie ein,musst du nichts escapen.

Escapen musst du das ganze nur, wenn du was direkt in der CS-Datei schreibst.

wenn du es wo ausliest, oder durchn user ins Programm bekommst, dann nicht 🙂

Mfg,
Daniel

28.10.2007 - 21:02 Uhr

Bist du dir sicher, dass du über den AttachDbFileName-Parameter eine Datenbankdatei angeben darfst, die im Netzwerk liegt?

Laut MS Technet ist dies nicht erlaubt, bzw. möglich:

Also the network share, HTTP paths, or Universal Naming Conventional (UNC) remote databases are not supported.

(http://technet.microsoft.com/de-de/library/ms345154.aspx)

mfg,
daniel

28.10.2007 - 20:55 Uhr

Hi,

soll der User später der Anwendung den Pfad als kommandozeilen-argument übergeben?
Wenn ja, muss er da den String sowieso nicht escapen.
Auch wenn der String über ne Textbox oder ähnliches kommen soll, musst du nicht Escapen.

Und wenn er das im Programmcode machen soll, also den aufruf, dann muss er sich wohl an das escapen halten.

Mfg,
daniel

28.10.2007 - 18:07 Uhr

Hallo,

deswegen hätte ich das mit WMI vorgeschlagen 😉
Ich hab damals als Abschlussprüfungs-Projekt eine Netzwerkinventarisierungs-Anwendung geschrieben, die genau das (Starten, Stoppen, Neustarten) von Services, Anwendungen... konnte.

Über WMI geht halt das ziemlich einfach, am remote-computer anzumelden:


//Connect to the remote computer
ConnectionOptions co = new ConnectionOptions();
co.Username = "john";
co.Password = "john";
System.Management.ManagementScope ms = new System.Management.ManagementScope("\\\\192.168.1.2\\root\\cimv2", co); 

Deswegen habe ich den Vorschlag mit wmi gemacht 😉

Ansonsten steht in folgendem:

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2295585&SiteID=1

auch was über die Anmeldung am Remote-PC.

Mfg,
daniel

28.10.2007 - 16:32 Uhr

hi,

über WMI, Windows Management Instrumentations, müsste das ganze ziemlich einfach gehen. Da kannst z.B. deine Dienste von einem Rechner über ne Art SQL-Query abfragen:


// Die folgende Tabelle zeigt Beispiele für WMI-Ereignisabfragen.
// WQL Erläuterung
SELECT * FROM __InstanceModificationEvent WITHIN 5 WHERE TargetInstance ISA "Win32_Service" AND TargetInstance.State="Stopped" 
// Alle fünf Sekunden wird geprüft, ob ein Dienst den Status Stopped bekommen hat.
Ausführung einer WMI-Ereignisabfrage in .NET

Lies mal folgendes nach, da gibts ein Beispiel fürs Auslesen der Dienste:

WMI Query

Mfg,
Daniel

28.10.2007 - 02:18 Uhr

Hi,

das einfachste ist folgendes:

  • Klick zuerst mal links im Visual Studio auf die Toolbox (rechtsklick 😉 ).
  • Wähle dann "Toolboxelemente auswählen" aus.
  • Danach öffnet sich ein Fenster, wähle da den Reiter "COM-Steuerelemente".
  • In der Liste suchst du dir einfach den "Windows Media Player".

Nach einem Klick auf "OK" hast du nun den MediaPlayer in der Toolbox, und kannst ihn einfach auf dein form ziehen 🙂

mfg,
daniel

24.10.2007 - 21:36 Uhr

Hi,

soviel ich mich erinnern kann ist der Assistent im Datei-Menü bei Projektmappe öffnen in der Ecke.

Dort kannst du dann das J#-Projekt öffnen, welches in C# konvertiert wird.

Am Ende hast du das ganze Projekt als C#-Projekt.

Das ist möglich, da ja in .NET die Hin-und-her konvertierung (mehr oder weniger) möglich ist.

mfg,
daniel

17.10.2007 - 18:59 Uhr

Diese DLL`s sollten ja dann normalerweise im .NET Framework enthalten sein.
Daher müsste alles funktionieren, wenn du das .NET Framework auch installierrst.

Am besten mal durchtesten, welche dateien du brauchst.

16.10.2007 - 19:19 Uhr

Wenn der NSIS-Installer das .NET Framework auf der Zielplattform installiert, geht das ohne Probleme.

Wenn dein Projekt weitere Bibliotheken benötigt, musst du diese natürlich auch in den installer einbinden.

16.10.2007 - 18:30 Uhr

Hi,

probier mal


Environment.Exit(0)

Ist natürlich nicht die schönste Art.
Besser wäre es, die Threads auf "IsBackground" zu setzen, dann werden die automatisch beim Beenden der Anwendung beendet.

System.Thread.IsBackground

10.10.2007 - 17:50 Uhr

hi,


            Clipboard.SetText(listView1.SelectedItems[0].SubItems[1].Text.ToString());

so könntest das machen 😉

07.10.2007 - 20:04 Uhr

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + datei + ";");

so müsste es gehen 🙂

07.10.2007 - 16:27 Uhr

Hi,

ich kann dir auch folgenden Artikel im CodeProject empfehlen:

GenCode128

Die Klasse, die dorten vorgestellt wird, kann aus einem Text einen Code128 Barcode erzeugen. Der Barcode wird als Bitmap erzeugt, daher kannst du Ihn ganz einfach auf Ausdrucken oder so verwenden.

Ich nutze diese Klasse selbst, und bin sehr zufrieden damit 🙂

mfg
Daniel

03.10.2007 - 15:45 Uhr

Hi,

also es genügt eigentlich den COM - Port (SerialPort Steuerelement) zu öffnen.

Wenn dann Daten ankommen, wird vom SerialPort automatisch das Event


DataReceived

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)

geworfen. Über

serialPort1.ReadExisting();

kannst du dann die Vorhandenen Daten auslesen.

lg,
daniel

02.10.2007 - 18:06 Uhr
// This snippet needs the "System.Diagnostics"
// library
 
// Application path and command line arguments
string ApplicationPath = "C:\\example.exe";
string ApplicationArguments = "-c -x";
 
// Create a new process object
Process ProcessObj = new Process();
 
// StartInfo contains the startup information of
// the new process
ProcessObj.StartInfo.FileName = ApplicationPath;
ProcessObj.StartInfo.Arguments = ApplicationArguments;
 
// These two optional flags ensure that no DOS window
// appears
ProcessObj.StartInfo.UseShellExecute = false;
ProcessObj.StartInfo.CreateNoWindow = true;
 
// If this option is set the DOS window appears again :-/
// ProcessObj.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
 
// This ensures that you get the output from the DOS application
ProcessObj.StartInfo.RedirectStandardOutput = true;
 
// Start the process
ProcessObj.Start();
 
// Wait that the process exits
ProcessObj.WaitForExit();
 
// Now read the output of the DOS application
string Result = ProcessObj.StandardOutput.ReadToEnd();

so sollte das ganze kein Fenster aufmachen 😉

02.10.2007 - 17:55 Uhr

Hi,

wenn ich das richtig verstehe, müsste dir die "Process"-Klasse weiterhelfen.
Über die kannst du Programme (extern) starten, und über die StandardInput und StandardOutput-Streams unter umständen mit denen kommunizieren.

Natürlich kannst du da auch parameter übergeben usw 🙂

Process Class

26.09.2007 - 18:48 Uhr

Hi,

SELECT * FROM [Sheet1$]

Hast du hier den Namen der Seite der Excel-Tabelle eingegeben, der auch existiert?

Im Deutschen Excel heißen die Dinger ja "Tabelle1", "Tabelle2"....

Danach sollte die Abfrage auch gehen.


using Excel=Microsoft.Office.Interop.Excel;

Mach so nen using dann hast du auch Excel.blablabla 😉

edit: Ich hab Excel 11.0, aber wenn du die untere Lösung nimmst, greifst du ja nicht über Excel auf die Tabelle zu.
Diese Lösung über OleDb ist zu empfehlen, wenn auf Rechnern z.B. kein Excel installiert ist.

25.09.2007 - 17:57 Uhr

Hi,

soviel ich weiß gibt es das "ExcelObj" von Haus aus nicht.
Das würde dann z.B. so aussehen:


private Excel.Application ExcelObj = null;
ExcelObj = new Excel.Application();
// See if the Excel Application Object was successfully constructed
if (ExcelObj == null)
{
MessageBox.Show("ERROR: Excel konnte nicht geöffnet werden");
System.Windows.Forms.Application.Exit();
}

Danach kannst du mit deinem Excel - Objekt alles machen was du willst.

Du könntest die Excel - Datei natürlich auch via OleDB auslesen, dann muss auf dem PC kein Excel zum auslesen vorhanden sein:


using System.Data; 
using System.Data.OleDb; 

... 

String sConnectionString = 
"Provider=Microsoft.Jet.OLEDB.4.0;" + 
"Data Source=" + [Your Excel File Name Here] + ";" + 
"Extended Properties=Excel 8.0;"; 


OleDbConnection objConn = new OleDbConnection(sConnectionString); 

objConn.Open(); 

OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM [Sheet1$]", objConn); 

OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(); 

objAdapter1.SelectCommand = objCmdSelect; 

DataSet objDataset1 = new DataSet(); 

objAdapter1.Fill(objDataset1); 

objConn.Close(); 

lg,
daniel

25.09.2007 - 07:46 Uhr

Hi,

probier mal den Unterstrich '_' 😉

lg,
daniel

16.09.2007 - 23:05 Uhr

Hi,

also ich verwende selbst den MS SQL Express parallel zu Firebird auf dem Webserver für meinen Online - Shop.
Läuft alles wunderbar, auch lizenztechnischt ist das in der Form ja sogar von Microsoft erlaubt.

Lg,
Daniel

16.09.2007 - 01:51 Uhr

Original von b-oern
Ohne PCap wird es in C# wohl kaum gehen, es sei denn du findest etwas ähnliches...

Gehen würde es schon irgendwie 😉
Aber warum das Rad erfinden wenns sowas schon gibt.

@naezl
Ich glaube, wenn du das ohne pcap oder andre komponenten machen willst, dann wird das alles andre als ein kurzer source.

edit:
gerade gefunden.
http://www.codeproject.com/cs/internet/networkmonitor.asp

16.09.2007 - 01:27 Uhr

Ich hab dir mal mein Testprojekt angehängt.
Probier mal aus ob das geht 🙂

15.09.2007 - 22:01 Uhr

Dem ausführenden Benutzer könnte das Recht für eine Operation fehlen, die in WinXP noch so ging.

Unter Vista hast du ja standardmäßig auf bestimmte Registry-Teile und den Programs - Ordner (glaube ich) keinen Zugriff mehr.

Oder führst du deine Anwendung als Admin aus?

15.09.2007 - 21:21 Uhr

Im Office Document Image Writer druckt er die linie bei mir auch 😉

Hast du bei dem Printdocument - control irgendwas spezielles eingestellt?

15.09.2007 - 20:22 Uhr

http://www.codeproject.com/cs/internet/sharppcap.asp

hier gäbs ein gutes Tutorial zur verwendung von PCap in C# - Projekten.
Weiß jetzt nicht obs dir in deinem fall zum ändern tips gibt, aber du kannst es ja mal versuchen 🙂

15.09.2007 - 20:16 Uhr

Hi,

hast du den Druck schon mal mit einem andren (PDF)-Drucker ausprobiert?

Hab mir kurz den Code kopiert, bei mir druckt er auf PDF schon was aus.

lg,
daniel

09.09.2007 - 13:24 Uhr

Wobeis für das Problem mit Lizenzierung / Testversionen auch massenhaft Komponenten gibt, die das schon können.

http://www.infralution.com/licensing.html ist z.b. sehr zu empfehlen. Benutz ich auch selber.

Vom Preis her OK und kann eigentlich alles... Erkennt sogar, wenn der User mit dem Datum des PC`s spielt 😉

09.09.2007 - 01:31 Uhr

Hi,

schau mal auf der Seite http://www.mysql.de/products/tools/migration-toolkit/ nach, da gibts das offizielle und kostenlose MySQL Migration Toolkit.

Ich hab in erinnerung dass der so gut wie mit jeder datenbank klarkommt, und das, was du beschreibst, eigentlich können sollte.

Siehs dir einfach mal an, mehr als nicht gehen kanns ned 😉

Mfg,
Daniel

30.08.2007 - 20:04 Uhr

Hi,

hab ich glatt vergessen 😉
Die Klasse findest du unter http://www.codeproject.com/cs/database/SubmitSQLInfoEnumerator.asp

lg,
daniel

30.08.2007 - 19:26 Uhr

Hi,

folgendes hätt ich im Angebot:

SQL-Server-Instanzen auflisten

Auflisten aller Datenbanken auf einem Server:


                // Datenbankenholen
                SQLInfoEnumerator enumerator = new SQLInfoEnumerator();
                enumerator.SQLServer = Servername;
                enumerator.Password = Passwort;
                enumerator.Username = Benutzername;

                String[] dbs = enumerator.EnumerateSQLServersDatabases();
                foreach (String s in dbs)
                    comSQLServer_DB.Items.Add(s);

Würde auch über einen SQL-Befehl gehen, weiß aber gerade nicht welcher das ist.

23.08.2007 - 18:36 Uhr

Welche Version mindestens installiert sein muss?
Es muss die Installiert sein, mit der du Entwickelst.

Bei Visual Studio 2005 bzw. den Express-Produkten ist das Framework 2.0, ansonsten kanns auch 1.0/1.1 sein.

Hast du Schreibzugriff auf den Registry-key, den du da öffnen möchtest? Und ist der Key auch vorhanden?

Der Fehler in der 2. Zeile tritt auf, weil das Key-Objekt null ist. Da das null ist, geht auch die GetSubkeys-Funktion nicht.

23.08.2007 - 18:17 Uhr

Am Einfachsten wäre es wenn du das ganze nicht in ne klasse machst, sondern direkt im Event-Handler des Button - clicks.

WEnn du wirklich ne klasse willst, dann mach erst mal die Vererbung weg, und übergib die Daten (name usw). einfach im Konstruktor der Klasse als String.

23.08.2007 - 18:06 Uhr
        private void btnSupportsenden_Click(object sender, EventArgs e)
        {
            
                       
            supportmail mailsenden = new supportmail();

            mailsenden._Mail();

            this.Close();
        }

Du erstellst hier mit dem new supportmail() zwar die Klasse, mithilfe du dann _mail() ausführst, allerdings wird gleichzeitig ein NEUER Dialog erzeugt.

Und da in dem Neuen Dialog nichts drinnensteht, versendet er auch leere Daten.

du darfst die Klasse supportmail nicht von supportmenue ableiten, wie schon gesagt.

23.08.2007 - 18:01 Uhr

Hi,

ich weiß zwar jetzt keine Komponente zum prüfen, aber die Namen der Bank kannst du ja anhand der BLZ auch selber ermitteln.

Gibt dazu bei der Deutschen Zentralbank glaub ich ein CSV-File mit allen BLZ zum download. Google sagt dir sicher wo genau 😉

mfg,
daniel

22.08.2007 - 20:05 Uhr

Wenn du in deiner 1. Codezeile einen Breakpoint setzt, kannst du das Programm schön Step für Step durchdebuggen 🙂

22.08.2007 - 17:58 Uhr

Hi,

Wenns in der Zeile auftritt, könnts entweder sein dass du in der SELECT - Abfrage einen Spaltennamen falsch hast, oder eine Spalte nicht exisitert...

Wenn du das Programm im Debug-Modus startest, solltest du doch mehr informationen bekommen... Da müsste dann auch der genaue Fehlergrund drinstehen.

mfg,
Daniel

26.07.2007 - 09:06 Uhr

Hi,

ich glaube dein Problem ist folgender ConnectionString - Teil:

AttachDbFilename=\"" + dbFile + "\"

Damit glaub ich greift der SQL Server DIREKT auf das File zu.

Probiers mal mit folgendem ConnectionString:

Data Source=Rechnername\SQLEXPRESS;Initial Catalog=Datenbankname;

Lg,
Daniel

17.07.2007 - 18:43 Uhr

hey danke 🙂

Jetzt gehts komischerweise.
Die Dateien hab ich schon mal des öfteren gelöscht, ging aber nicht damals.

Jetzt gings. Komische sache 😉

danke 🙂

lg,
daniel

17.07.2007 - 16:21 Uhr

Hi Jungs,

seit ein paar Tagen hab ich ein ziemlich böses Problem, was mir nicht mal mehr das Debuggen meiner Anwendung erlaubt.
Ich hab auch nichts besonderes am Code gemacht, wodurch ich mir das Problem erklären könnte.

Sobald ich die Windows - Anwendung im Debug-Modus starten will, kommt folgende Nette Exception:

Object reference not set to an instance of an object.

Das ganze Tritt beim Abfragen der Eigenschaft "Application.ProductVersion" auf.

Im Release-Mode geht alles einwandfrei, auch wenn ich die Stelle, wo der Fehler auftritt, auskommentiere, kommt in ner andren Zeile wieder ein Fehler, der mir komplett umerklärlich ist.

Hatte jemand das Problem mit dem Application.ProductVersion schon?

Viele Grüße,
Daniel

16.07.2007 - 14:53 Uhr

Probier mal die Eigenschaft "DoubleBuffered" der Form auf True zu setzen.

mfg
daniel

12.07.2007 - 13:31 Uhr

Und in der letzten Zeile willst du eine Funktion aufrufen...

Und wie ruft man ne funktion auf? 😉

Form.Close - Methode

Bzgl. Transparenz:

Du könntest z.B. in deinen Splash-Screen einen Timer einfügen, der z.B. auf ne halbe Sekunde eingestellt ist, und bei jedem Tick-Event des Timers die Transparenz mit


this.Opacity += 10;

erhöhen. Schon wirds ganz easy eingeblendet.

Siehe auch

CodeProject - Transparency Tutorial

12.07.2007 - 10:08 Uhr

Unter

CodeProject

findest du ein beispiel, wie du ne Access-DB direkt aus deinem C#-Programm komprimieren kannst. z.b. beim starten oder beenden deiner Anwendung.

lg,
daniel

12.07.2007 - 10:00 Uhr

Hi,

das einblenden ließe sich auch noch einfacher gestalten, in dem du z.B. die Opacity-Eigenschaft des Formulares einfach mit einem Timer oder so langsam erhöhst.

Dann musst die nicht den Umweg um die Windows-API nehmen.

lg,
daniel