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
Also das
ExecuteNonQuery
brauchst Du, sonst passiert ja gar nichts.
Und die Fehlermeldung brauchen wir 🙂
Gruß Hape
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
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
Original von SvenH
string html = Encoding.UTF8.GetString(Bytes);
Probierst Du mal
string html = Encoding.ASCII.GetString(Bytes)
Gruß Hape
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.
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
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
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
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
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
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
Hi Tidus,
du mußt eigentlich doch nur Deine handvoll Solutions am neuen Ort öffnen.
Gruß Hape
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
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
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
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
Hi dgroeser,
wenn Du das Control nicht auf Deine Form kriegst, vielleicht hilft erst mal Link
Gruß Hape
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
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
Wow!
Vielen Dank Euch allen für die schnelle Hilfe!
Gruß Hape
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
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
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
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
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
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
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
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
Hi Pharao2k,
wenn Du aus dem Icon dann wieder ein Bitmap machen willst,
System.Drawing.Icon x;
x.ToBitmap()
Gruß Hape
Hallo Freddy,
gibts Du uns noch bitte ein paar Infos zum Umfeld. Wann und wo und was hast Du bist jetzt?
Gruß Hape
Hi Nighthawk167,
System.Console.Beep(frequenz,dauerinmillisek)
geht einwandfrei, aber mit diesen Buzzer-Klängen wirst Du Deine Nachbarn los 🙂
Gruß Hape
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
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));
...
Vielen Dank euch allen für die hilfreichen Antworten!
Gruß hape
Hallo,
ich habe eine Hand voll Fragen zu der generischen Dictionary-Klasse in System.Collections.Generic.
Ich frage mich:
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;
}
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
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
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");
}
}
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
Hallo,
Fabian, danke für den Tipp.
Hier der Link, ich hoffe das ist die Komponete, die Du gemeint hast.
Gruß Hape
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
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
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
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
Hallo Borg, du bist ja schnell - vielen Dank für den passenden Link. 👍
Gruß Hape
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
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
Danke xqene,
gemeinsam kriegen wir Dein Tool schon rund 🙂
Gruß Hape
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