Laden...

Forenbeiträge von hape Ingesamt 121 Beiträge

27.10.2006 - 19:01 Uhr

siehst Du, dann fehlts bereits an der Connection, bzw. klappt der connection.open() nicht. Das hat mit dem Insert ja gar noch nichts zu tun.
Gruß Hape

27.10.2006 - 18:54 Uhr

Also das

ExecuteNonQuery

brauchst Du, sonst passiert ja gar nichts.
Und die Fehlermeldung brauchen wir 🙂
Gruß Hape

27.10.2006 - 18:41 Uhr

Hi Borg,
gute Idee. D.h. man würde einen Scan Server, also z.B einen Service draus machen, der auf dem Server im Hintergrund (Tray-Icon) läuft, und der Client würde mit Remoting oder WCF drauf zugreifen, oder übers Intranet mit ASP.NET Web Frontend? Interessant. Andererseits - Netzwerk Scan - wer braucht das? Man muß das Gerät doch eh vor Ort mit dem Papier bestücken.

Gruß Hape

27.10.2006 - 18:39 Uhr

Hi,

aus
INSERT INTO score (Spielernamen) VALUES (?)
mach
INSERT INTO score (Spielernamen) VALUES (@Spielernamen)

aus
new System.Data.OleDb.OleDbParameter("Spielernamen", f);
mach
new System.Data.OleDb.OleDbParameter("@Spielernamen", f);

So könnte es besser gehen
Gruß Hape

27.10.2006 - 18:32 Uhr

Original von SvenH
string html = Encoding.UTF8.GetString(Bytes);

Probierst Du mal
string html = Encoding.ASCII.GetString(Bytes)

Gruß Hape

27.10.2006 - 18:21 Uhr

Also,
einen Bug hab ich gleich auf der Hand:
Ich habe hier einen Brother USB Scanner. Ich stecke dessen USB Kabel nun aus. Und starte Scan2.exe. Sowas kommt vor 🙂

Dann hängt das Programm jämmerlich, nachdem ich die Scannquelle ausgewählt habe. Die Fenster werden dann nicht mehr refreshed, und das Programm kann nicht mehr beendet werden. Außerdem ist die Prozessauslastung von Scan2 ständig auf 100%. Und das geht sei ein paar Minuten so.
Also: gebraucht wird eine konkrete einmalige Fehlermeldung: "Gerät nicht da".
Gruß Hape

Original von tom-essen
Sobald der Code einigermassen kommentiert und strukturiert ist, könnte man ja über SVN, ... nochmal nachdenken.

OK, vertagen wir das mit SVN.

27.10.2006 - 18:00 Uhr

Hallo,
wenn aus Programmierhans' Vorarbeiten z.B. ein LGPL licenced Team Projekt würde, mit zentralem CVS/SVN, würde ich gerne mithelfen beim Test, Dokumentation und bei der Entwicklung.
Gruß Hape

27.10.2006 - 17:45 Uhr

Hallo Cine,
versuche mal, unterschiedliche Drucker zu vergleichen (z.B: auch PDF Writer, etc.), ggf. ist das Problem auf einen konkreten Druckertreiber beschränkt, das weißt Du der Bug ist. Könnte hilfreich sein.
Viele Grüße
Hape

27.10.2006 - 01:59 Uhr

Hallo,

in VS 2005 wird, wenn man im C# Quellcode auf ein öffnendes "{" positioniert, automatisch das dazu passende schließende "}" grau unterlegt.

Weiß jemand, wie man dann zu dieser passenden Klammer springen kann, ggf. zusammen mit dem Markieren von Quelltext, mit einer Tastenkombination / Shortcut?

Ich find da keine Info. Womöglich geht das gar nicht.

Gruß Hape

27.10.2006 - 00:37 Uhr

Außerdem, kannst Du mal ein bißchen umbauen.

Erst die Connection sqlConnection1 öffnen,

dann mit

new SqlCommand("insert into .........", sqlConnection1);

drauf zugreifen. Ist irgendwie hübscher. CommandType brauchst Du nicht.

Und dann den SQL Profiler starten und kucken was da ankommt auf der SQL Seite (oh gibts den eigentlich bei Express?)

Gruß Hape

27.10.2006 - 00:33 Uhr

Hi srynoname,
also scheinbar vertraust Du da auf das "Makro" |DataDirectory|.
Das kenne ich zwar nicht, aber ich lese grad Quelle

"Under the hood, the value for |DataDirectory| simply comes from a property on the app domain. It is possible to change that value and override the default behavior by doing this:
AppDomain.CurrentDomain.SetData("DataDirectory", newpath)"

Dann würd ich mal hingehen, und mit ....GetData("DataDirectory") mal kontrollieren, ob das bei Dir korrekt gesetzt ist.
Also Schritt 1 sozusagen 🙂

Gruß Hape

26.10.2006 - 19:51 Uhr

ja, ich frage mich, ob

SELECT a, b FROM deineTabelle GROUP BY a, b HAVING COUNT(a) > 1 AND COUNT(b) > 1 und select distinct a, b from deinetabelle äquivalent sind.

Von Spalte c ist in beiden Fällen keine Spur.....
Gruß Hape

26.10.2006 - 19:24 Uhr

Hi Tidus,
du mußt eigentlich doch nur Deine handvoll Solutions am neuen Ort öffnen.
Gruß Hape

26.10.2006 - 19:20 Uhr

Hi Noodles,
ist das äquivalent? (nur interessehalber)

SELECT a, b FROM deineTabelle GROUP BY a, b HAVING COUNT(a) > 1 AND COUNT(b) > 1 

und

select distinct a, b from deinetabelle

Gruß Hape

26.10.2006 - 19:15 Uhr

Hallo,

eigentlich ist das Blödsinn was ich da schreibe!
Nimmt man nämlich eine Datei und macht daraus eine Kopie mit anderem Namen, dann...... wäre das Verfahren ja nicht in der Lage, die beiden Dateien zu trennen.

Also vergeßt was ich geschrieben habe 🙂
Gruß Hape

26.10.2006 - 19:11 Uhr

Hallo,

Du kannst an zwei verschiedenen Pfaden nicht erkennen, ob sie die selbe physikalische Datei beschreiben, meines Erachtens.
Deshalb würde ich TiltonJH s Idee mit dem Hashing aufgreifen, und zwei Dateien identisch sein lassen, wenn Hash und Größe übereinstimmen.
[ Vielleicht ist in Filesystemen mit symbolischen Links noch nicht einmal der Dateiname ohne Pfad ein Kriterium, aber ich bin keiner, der sich bei Linux auskennt.]

Gruß Hape

26.10.2006 - 18:59 Uhr
select distinct a, b from deinetabelle

holt sich die Gesamtanzahl der Kombinationen.
Dieses Resultat kannst du dann im 2. Schritt verwenden, um den jeweils 1. Datensatz davon zu holen.

select top(1) a, b, c, from deinetabelle ...

Ich glaub man kann es mit einem Join oder mit Nesting schaffen, das in ein Statement zu packen. Hab aber grad kein Beispiel zur Hand. Sollte aber gehn.

Gruß Hape

25.10.2006 - 12:37 Uhr

Hi dgroeser,
wenn Du das Control nicht auf Deine Form kriegst, vielleicht hilft erst mal Link

Gruß Hape

25.10.2006 - 12:10 Uhr

Hi dgroeser,
Du brauchst einen BackgroundWorker (ab .NET 2.0) oder einen Thread (siehe Control.Invoke() und Control.BeginInvoke() ), der das Datenschaufeln stemmt und eine ProgressBar, die den Fortschritt anzeigt.
Gruß Hape

25.10.2006 - 11:56 Uhr

Hallo dgroeser,

Du füllst ein DataSet mit Daten, und das dauert, und Du willst eine Progressbar, damit sich der User nicht langweilt, ist es das? - nur damit die Frage richtig verstanden wird.

Gruß Hape

24.10.2006 - 23:07 Uhr

Wow!
Vielen Dank Euch allen für die schnelle Hilfe!
Gruß Hape

24.10.2006 - 22:24 Uhr

Hallo Tom,
danke für Deine Antwort. Die Anforderung ist, dass ein Script über ein Datenbestand huschen soll, und Fehlendes ergänzen, und Altes updaten soll.

Deine Idee mit den Tabellenvariablen interessiert mich.

Die stored procedure kriege ich für eine konkrete Tabelle hin, aber wie geht das mit den Tabellenvariablen? Alle betreffenden Tabellen haben eine Spalte ID sowie eine Spalte Bezeichnung.


ALTER PROCEDURE [dbo].[ZinsberechnungFill] 
  (
  @tabname table(   ***wie geht das****  ),
  @ID uniqueidentifier, 
  @Bezeichnung nvarchar(60)
  )
AS
BEGIN
if ((select count(*) FROM [dbo].[Zinsberechnung] WHERE ID = @ID)>0)
  update @tabname set Bezeichnung=@Bezeichnung where ID = @ID
else
  insert into @tabname(ID, Bezeichnung) values (@ID, @Bezeichnung)
END
...
execute [dbo].[ZinsberechnungFill] @tabname='dbo.Zinsberechnung', @ID = '73d9bc97-65dd-4850-85c0-0b5bfd796105', @Bezeichnung = 'Basiszins'
GO


Gruß Hape

24.10.2006 - 21:30 Uhr

Hallo,
wenn ich Sätze updaten, bzw. ggf inserten muß, falls noch nicht vorhanden, behelfe ich mich mit einem etwas üppigen T-SQL Konstrukt. Die Tabelle hat 2 Spalten, ID ist PK.

T-SQL (SQL Server 2005):


if ((select count(*) FROM [dbo].[Zinsberechnung] WHERE ID = '73d9bc97-65dd-4850-85c0-0b5bfd796105')>0)
  update [r1].[Zinsberechnung] set Bezeichnung='Blabla' where ID = '73d9bc97-65dd-4850-85c0-0b5bfd796105'
else
  insert into [dbo].[Zinsberechnung](ID, Bezeichnung) values ('73d9bc97-65dd-4850-85c0-0b5bfd796105', 'Blabla' )
GO

Kennt jemand da eine Abkürzung?
Falls nicht, gehe ich hin und mache mir eine Stored Procedure hierfür.
Leider muß ich dann für jede Tabelle eine eigene machen, aber es ginge schon.
Falls jemand einen generellen kürzeren Mechanismus kennt, freue ich mich über eine Info.
Gruß hape

21.10.2006 - 18:47 Uhr

Hallo ihr,



static void Main()  {
...
{
  string a = "Test";
  Console.WriteLine(a);
}

{
  int a = 1;
  Console.WriteLine(a);
}
...
}

Deklarationen innerhalb eines Scopes sind außerhalb nicht sichtbar, deshalb ist das schon ok, Qwald's "if(true)" ist aber überschüssig.

Nutze ich aber dennoch selten.

Gruß Hape

20.10.2006 - 21:05 Uhr

Hi,

ich habe mit den typsierten Datensets, und dem Designer in VS 2005, der anscheinend "alles machen" erledigen kann, leider keine guten Erfahrungen gemacht. Obwohl es von allen Webcasts gepusht wird, ist das noch nicht ausgereift. Da reicht schon ein kleiner Bug und schon stimmt das generierte Zeugs nicht mehr und man wurschtelt nur noch in generiertem Code rum. Außerdem finde ich ein sauberes Stück Coding, aus dem genau ersichtlich ist, wie die Tabellen und Relationen aufgebaut sind, inzwischen wieder sehr schick, nachdem ich mit dem VS Designer viel Zeit verloren habe. Außerdem, wenns mal ans Refactoring geht, Datenbankänderungen im Code nachziehen -> dann geht da gar nichts mehr, außer man steigt vielleicht gleich auf Team Edition for Database Professionals auf, was einem ein verbessertes Refactoring Db-seitig verspricht. Aber da sind wir schon wieder beim: Versprechen.... grins

--> Untypisierte DataSets sind meines Erachtens spitze und ausgereift.

Gruß Hape

20.10.2006 - 18:39 Uhr

Hallo regaa,

ich hatte das selbe Problem.

Wie tb schreibt, die Reihenfolge ist das Problem.

Mach mal mit Strg-Alt-T das Dokumentgliederungsfenster auf, und verschiebe die Reihenfolge der Elemente. Wenn mit Dock, z.B. Fill, gearbeitet wird, ist die Reihenfolge für das spätere Layout ausschlaggebend. Am besten aber erst in einem kleinen Testprojekt das mal auskaspern.

Man kann mit Drag und Drop im Dokumentengliederungsfenster prima hantieren.

Gruß Hape

20.10.2006 - 17:40 Uhr

Hi,


C:\Programme\Microsoft SQL Server\90\Tools\Publishing>sqlpubwiz script -C "Data Source=.\SQL1;Initial Catalog=AdventureWorks;Integrated Security=True" test.sql

Microsoft (R) SQL Server Database Publishing Wizard
Community Technology Preview 1 (0.1.0.0)
Copyright (c) Microsoft Corporation.  All rights reserved.

Generating script for database AdventureWorks
- Including default object types in script
Error: An object or property in table DatabaseLog is currently not supported.

Das Tool ist noch taufrisch, und kann die AdventureWorks Db noch nicht korrekt exportieren, bei mir zumindest, also noch mal 4 Wochen reifen lassen 🙂

Gruß Hape

18.10.2006 - 16:16 Uhr

Hallo cadi und svenson,

schade, dass es da kein VS Bordmittel dafür gibt,
dennoch Klasse, dass da Lutz Roeder's Tool aushilft.
Svenson hat völlig recht, die Liste der implementierenden Klassen (des selben Frameworks) gehört eigentlich schon in die Doku des Interfaces... zudem sich das ja automatisch generieren ließe.

Danke für die Antworten.
Gruß Hape

18.10.2006 - 14:54 Uhr

Hi Pharao2k,


Bitmap b = new Bitmap(bruttobreite, hoehe);
Graphics g = Graphics.FromImage(b);

wenn Du mit g arbeitest, also drin rummalst, mit DrawString, etc., dann schlägt sich das auf das Bitmap b nieder. Am Ende der Malerei kannst Du also b als Ergebnis verwenden. Das Graphics Objekt g kann man einfach links liegen lassen, wird ja nicht mehr gebraucht.

Gruß Hape

18.10.2006 - 01:16 Uhr

Hi Pharao2k,
wenn Du aus dem Icon dann wieder ein Bitmap machen willst,

System.Drawing.Icon x;
x.ToBitmap()

Gruß Hape

18.10.2006 - 01:10 Uhr

Hallo Freddy,
gibts Du uns noch bitte ein paar Infos zum Umfeld. Wann und wo und was hast Du bist jetzt?
Gruß Hape

18.10.2006 - 01:04 Uhr

Hi Nighthawk167,

System.Console.Beep(frequenz,dauerinmillisek)

geht einwandfrei, aber mit diesen Buzzer-Klängen wirst Du Deine Nachbarn los 🙂
Gruß Hape

18.10.2006 - 00:37 Uhr

Hallo,

ich steh auf dem Schlauch, ich weiß nicht, wie man schnellsten zu den implementierenden Klassen eines Interfaces browsen kann.

z.B. System.IFormatProvider

In Visual Studio 2005 finde ich das Interface zwar im Objectrowser, aber dort keine Infos zu den implementierenden Klassen. Mache ich dort: Alle Verweise suchen --> Es liegen keine Suchergebnisse vor.

Wie macht Ihr das, wenn Ihr zum Interface XYZ alle Implementierungen sucht?

Danke für Eure Ideen,
Gruß Hape

17.10.2006 - 23:16 Uhr

Hallo Pharao2k,

Auf keinen Fall selbst die Zeichen rendern... da wirst Du ja nicht glücklich 🙂
Nimm z.B. DrawString, um beliebigen Text mit gewünschter Schrift in ein Bitmap zu plazieren. Und das Ergebnis dann in ein Icon umwandeln. Letzteres hab ich noch nicht gemacht, aber Vorschlag hört sich vielversprechendn an (per Stream).

Gruß Hape

 
...
Bitmap b = new Bitmap(bruttobreite, hoehe);
Graphics g = Graphics.FromImage(b);
Font f = new Font("MeinFontName", 16, FontStyle.Regular);
g.DrawString("12345", f, brush, new PointF(10, 15));
...

17.10.2006 - 12:23 Uhr

Vielen Dank euch allen für die hilfreichen Antworten!
Gruß hape

16.10.2006 - 20:16 Uhr

Hallo,

ich habe eine Hand voll Fragen zu der generischen Dictionary-Klasse in System.Collections.Generic.

Ich frage mich:

  1. Bleibt die Einfügereihenfolge erhalten, d.h. läuft der Enumerator in der selben Reihenfolge ab, wie die ursprünglichen Add(...) Anweisungen?
  2. Falls ja - wie springt man zum letzten Element (ohne das umständliche Coding siehe unten)?
  3. Falls nein - welche generische Collection sollte ich nehmen, wenn ich mit Keys drauf zugreifen möchte, und die Einfügereihenfolge erhalten bleiben soll?
  4. ich kriege bei letzterEintrag.Value zu recht die Meldung "Verwendung der nicht zugewiesenen lokalen Variablen 'letzterEintrag'. Wie muß man ein struct eigentlich vorbelegen, oder wie prüft man ein solchiges, ob es leer ist? Mit struct habe ich leider noch gar nicht gearbeitet.

Danke für Eure Ideen.
Gruß Hape


        Dictionary<string, DbVersion> liste = new Dictionary<string, DbVersion>()

        public DbVersion getNeuesteVersion()
        {
            Dictionary<string, DbVersion>.Enumerator e = liste.GetEnumerator();
            KeyValuePair<string, DbVersion> letzterEintrag;
            while (e.MoveNext())
                letzterEintrag = e.Current;
            return letzterEintrag.Value;
        }

12.10.2006 - 16:50 Uhr

Hi roddy,

Du kannst **auch innerhalb **eines Projektes Forms auf die beschriebene Weise be- und vererben, mußt nur vorher einen Build durchführen, und Dich dann auf die erzeugte DLL oder EXE beziehen. Das geht schon auch innerhalb!

Schöne Grüße,
Hape

12.10.2006 - 16:42 Uhr

Hallo,

zum Vererben von Forms gibts eigentlich eine Vorgehensweise in Visual Studio.

Die ursprüngliche Form in einem Library Projekt erstellen

In einem zweiten Projekt: Hinzufügen -> neues Element -> Geerbtes Formular,
dann den Bezug zum ursprünglichen Fenster herstellen. (das Library Projekt natürlich zur Solution hinzufügen)

Dann kannst Du im geerbten Formular Sachen hinzufügen, die im beerbten definiert sind. Und Sachen, die sich im beerbten Formular ändern, schlagen durch.

Oder paßt das nicht zu Deiner Anforderung?

Gruß Hape

12.10.2006 - 16:28 Uhr

Hallo beisammen,

Ihr seid alle so schnell beim Antworten - echt Klasse dieses Forum! 👍
In der Zwischenzeit habe ich das mal rausgesucht, es sieht ähnlich aus wie Eure Vorschläge, naja, das hat sich nun überschnitten. Dennoch hier mein Posting:

Gruß Hape


        using System.Collections;
        public static void meinTest()
        {
            // Alternativen zum Probieren:
            //
            Eigenschaft<int> testvar = new Eigenschaft<int>();
            //string testvar = "blabla";
            //List<String> testvar = new List<String>();

            Eigenschaft<string> stringTest = new Eigenschaft<string>();
            if (testvar.GetType().IsGenericType)
                if (typeof(Eigenschaft<>) == testvar.GetType().GetGenericTypeDefinition())
                {
                    Console.WriteLine("*** Es handelt sich um eine Eigenschaft<T>");
                }
                else
                {
                    Console.WriteLine("*** Nein, es ist zwar generic, aber keine Eigenschaft<T>");
                }
            else
            {
                Console.WriteLine("*** Nein, es ist was ganz anderes");
            }
        }

10.10.2006 - 14:46 Uhr

Hallo,

da scheinbar die Notification Services nur Events innerhalb des SQL Servers auslösen, und diese dann nur über Umwege eine externe Anwendung anstoßen könnten, kommen sie für mich erst mal nicht in Betracht, so schön die Idee auch sein mag.

Jetzt fand ich aber einen anderen myCSharp.de-Beitrag, in dem M@TUK einen Hinweis zur SQLDependency-Klasse gibt. (Verwenden von Abfragebenachrichtigungen)

Vielleicht ist die SQLDependency Klasse besser geeignet, eigenständige, d.h. vom SQL Server losgelöste Anwendungen bei Datensatzänderungen zu benachrichten.

Gruß Hape

07.10.2006 - 16:35 Uhr

Hallo,
Fabian, danke für den Tipp.
Hier der Link, ich hoffe das ist die Komponete, die Du gemeint hast.
Gruß Hape

06.10.2006 - 22:53 Uhr

Hallo,

dann gibts ja noch die VS Funktion "Website kopieren".
Sieht aus wie ein klassisches FTP-Programm.
Links die Quelle, rechts das Ziel.
So kann man ganz schnell auch einzelnen Dateien oder Verzeichnisse uploaden.

Was mir anfangs passiert ist: VS 2005 hat mir immer wieder automatisch eine neue .mdf Datei angelegt (ins App_Data Verzeichnis), mit 20 MB schon zu Beginn. Die hatte ich mir ab und zu aus Versehen hochgeladen, dass dauerte dann ewig. Manche Wizards erzeugen die immer, wenn sie nicht da ist, das ist lästig.

Gruß Hape

06.10.2006 - 20:05 Uhr

Hallo Ifoko und LastGentleman,

wo ist das Problem?

Visual Studio 2005 bietet doch im Menü Erstellen -> Website veröffentlichen eine gute Möglichkeit, die Webapplikation auf den Host zu veröffentlichen. Im Dialog wählt man beim Zielspeicherort die Remotesite aus und nach wenigen Sekunden ist das Web veröffentlicht. Währenddessen kriegen Gäste im Browser sogar eine Meldung angezeigt, dass die Website momentan offline ist.

Was wollt Ihr denn mehr 😉

Gruß Hape

05.10.2006 - 16:19 Uhr

Hallo KingPin,

geh mit dem SQL Server Management Studio doch mal her, und führe mal auf einer Deiner komplexeren Tabellen aus: im Kontext-Menü: "Script für Tabelle als -> CREATE IN -> Neues Abfrage-Editorfenster"

Dann kriegst Du ein gutes Beispiel aller SQL-Statements, die nötig sind.
Inklusive der Primary und Foreign-Keys.

Hoffe ich hab Dich richtig verstanden und Du kannst damit was anfangen.
Gruß Hape

05.10.2006 - 00:25 Uhr

Nallo Nailor,

inzwischen habe ich den SP1 Beta zu VS 2005 drauf, aber das ToolStripStatusLabel verhält sich immer noch genau so (seltsam).

Spring=true hilft, drückt die anderen Items ggf. dann halt nach rechts an den Rand.

Naja, wie Du schreibst, der Workaround bleibt nötig X(

Gruß Hape

25.09.2006 - 14:47 Uhr

Hallo Borg, du bist ja schnell - vielen Dank für den passenden Link. 👍
Gruß Hape

25.09.2006 - 14:15 Uhr

Hallo beisammen,

ich habe eine hardwarenahe Frage.

Wenn man einen USB-Memory Stick verwendet, wird automatisch in Windows XP ein Laufwerk für dieses Speichermedium eingerichtet.

Man kann das Laufwerk trennen und den Stick freigeben, indem man in der System Tray die Funktion "Hardware sicher entfernen" ausführt.

Ich frage mich nun, wie man die Funktion "Hardware sicher entfernen" programmgesteuert auslösen könnte, ohne dass der Benutzer das selbst machen muß, aber mit dem selben Effekt.

Hat so was schon mal jemand gesehen/gemacht?

Viele Grüße
Hape

22.09.2006 - 15:10 Uhr

Hi Zed, kann es nicht sein, dass es mit dem BindingNavigator ursächlich gar nichts zu tun hat, sondern der Fehler auch mit einem PageControl / ToolStrip alleine schon reproduzierbar ist. Von den VS2005 Bugs werden sich wahrscheinlich einige Luft auflösen, wenn der SP1 da ist (hoffe ich!)
Gruß Hape

10.09.2006 - 16:14 Uhr

Danke xqene,
gemeinsam kriegen wir Dein Tool schon rund 🙂
Gruß Hape

08.09.2006 - 23:22 Uhr

Hallo xqgene,
das Programm ist gut, aber was ich, wenn ich es deinstallieren möchte?!
Ich habe das Deinstallieren gemacht, aus der System/Software Liste isses raus - gut. Aber Visual Studio 2005 zeigts als Add-In immer noch an, selbst nach dem Restart, und der Todo - Punkt ist immer noch in dem Kontext-Popup-Fenster drinnen. Hilfst Du mir da mal? Gruß Hape