Zum Inhalt springen

.NETter

Mitglieder
  • Gesamte Inhalte

    177
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von .NETter

  1. .NETter

    Threads in C#

    Hallo, Thread t = new Thread(new ThreadStart(DeineMethode)); t.Start(); alles was Du wissen musst liegt im Namespace System.Threading.Thread Gruß, Thomas
  2. Hallo, es ist kein Problem das auf einem XP zu installieren. Der 2000´er ist aber schon etwas sehr in die Jahre gekommen und man wird ihm auch bei Kunden nicht mehr so häufig begegnen. Mittlerweile sind wir beim SQL Server 2008 R2. Falls es nicht wirklich erforderlich ist würde ich mich mit dem 2000´er erstmal nicht auseinander setzen, sonder direkt auf den 2005´er (sehr verbreitet) gehen oder besser noch auf den 2008´er (mittlerweile machen viele Kunden das Update weil der einfach gut ist). Beim 2000´er kannst Du mit dem Enterprise Manager auf den Server und die DB zugreifen. Ab der Version 2005 heißt das ganze "SQL Server Management Studio". Dies kannst Du Dir auf jedem beliebigen Clientrechner installieren (auf dem Server wird es automatisch mit installiert). Du kannst auf jeden Fall auch die kostenlosen Verionen (Express Edition) des SQL Servers nutzen. Bis zum SQL Server 2008 hast Du hier ein freies Datenvolumen von 4 GB, ab dem 2008 R2 sogar 10 GB pro Datenbank. Viele Grüße, Thomas
  3. Hallo, das könnte ein schwieriges Unterfangen werden. Daten von beiden Seiten (also von A nach B und von B nach A) zu replizieren ist nicht das wirkliche Problem (siehe Mergereplikation). Hierbei wird vom SQL Server selbst allerdings das Schema der Datenbank geändert. Ein Schema einer Tabelle etc. beidseitig zu replizieren ist mit Bordmitteln meines Wissens nach nicht möglich.
  4. Hallo, was soll genau passieren? Sollen alle Daten von Server1.DeineTabelle nach Server2.DeineTabelle repliziert werden? Also Insert, Update und Delete? Soll eine Replikation nur in eine Richtung erfolgen? Also nur von Server1 nach Server2 ? Anstatt des Sync Frameworks "könnte" man auch einfache SQL Statements absetzen. Hier würde man auf Server1 einen Verbindungsserver (Server2) einrichten. Dann lassen sich die Tabellen auf den verschiedenen Servern in der Syntax SELECT * FROM Server1.DBName.MeineTabelle t1 LEFT JOIN Server2..DBName.MeineTabelle t2 ON t1.id = t2.id WHERE t2.id IS NULL So hat man dann "neue" Datensätze die in der Tabelle auf Server2 noch nicht enthalten sind und kann diese dann mittels SQL Statement In die zweite Tabelle einfügen. Ebenso kann man es mit dem DELETE und UPDATE halten. Gruß, Thomas
  5. Hallo, was ist den das Problem mit dem SQL Statement? Poste es doch mal. Am besten mit etwas Beschreibungstext dazu. Ich kann noch nicht so ganz das Ziel durchblicken. Der Link (woher er auch immer kommt) tut was? Du kannst als Datenquelle in den Reporting Services auch eine Stored Procedure benutzen. So hättest du mehr Komfort und andere Vorteile. Falls Du einen bestimmten Wert in einem Feld stehen haben möchtest was eigentlich NULL ist könntest Du es so machen: SELECT ISNULL(vorname, "-unbekannt-") As Vorname, nachname FROM dbo.Person So würde bei allen Personen bei denen der Vorname "NULL" ist, in der Ausgabe "-unbekannt-" im Feld Vorname erscheinen. So könntest Du fehlende Werte (NULL) auf einen bestimmten Wert umschreiben (natürlich nur für Deine Ausgabe). Gruß, Thomas
  6. Hallo, mit dem Berichtsgenerator... hmmm. Ja wie Du schon sagtest bezieht sich der ganze Bericht und seine Felder nun eben auf ein bereitgestelltes Berichtsservermodell. Was Du tun kannst ist natürlich die Datenquellen im BIDS anzupassen und Felder die sich auf Daten aus dem Modell beziehen so zu ändern, dass sie Daten direkt aus den Datenquellen abrufen. Die zweite Möglichkeit ist natürlich das Berichtsservermodellprojekt auf dem neuen Server zu veröffentlichen. Vorausgesetzt natürlich ihr habt dafür wenigstens die Projektdateien. Ich arbeite garnicht mit Modellen weil es aus meiner Erfahrung heraus die meisten Nutzer eh überfordert diese Berichte selbst zu erstellen. Viele Grüße, Thomas
  7. Das liegt an diesem Statement: abfrage.CommandText = "Insert into Artikel(Artikelgruppe, [B][I][U]ArtikelNr[/U][/I][/B], Artikelbezeichnung, Einkaufspreis, Mengeneinheit) Values (@Artikelgruppe, @Artikelbezeichnung, @Einkaufspreis, @Mengeneinheit)"; Hier steht immernoch die ArtikelNr!
  8. Hi, lass die Spalte mit dem Autowert beim Command einfach weg: Insert into Artikel(Artikelgruppe, Artikelbezeichnung, Einkaufspreis, Mengeneinheit) Values (@Artikelgruppe, @Artikelbezeichnung, @Einkaufspreis, @Mengeneinheit)"; parameter = abfrage.Parameters.Add("@Artikelgruppe", OleDbType.LongVarChar); parameter.SourceColumn = "Artikelgruppe"; parameter = abfrage.Parameters.Add("@Artikelbezeichnung", OleDbType.LongVarChar); parameter.SourceColumn = "Artikelbezeichnung"; parameter = abfrage.Parameters.Add("@Einkaufspreis", OleDbType.LongVarChar); parameter.SourceColumn = "Einkaufspreis"; parameter = abfrage.Parameters.Add("@Mengeneinheit", OleDbType.LongVarChar); parameter.SourceColumn = "Mengeneinheit"; So sollte es gehen... Gruß, Thomas
  9. Hallo, Du kannst anstatt der benannten Parameter auch einfach Fragezeichen nutzen. INSERT INTO Artikel (Wert1, Wert2) VALUES(?,?) Wenn Du die Reihenfolge einhälts passt das so. Viel Spaß noch! Gruß, Thomas
  10. Du Zuweisung an parameter ist überflüssig. Bei einem OleDbCommand ist die Reihenfolge der Parameter maßgebend. Deine Version: Es sollte so aussehen: abfrage.CommandText = "Insert into Artikel(Artikelgruppe, ArtikelNr, Artikelbezeichnung, Einkaufspreis, Mengeneinheit) Values (@Artikelgruppe, @ArtikelNr, @Artikelbezeichnung, @Einkaufspreis, @Mengeneinheit)"; parameter = abfrage.Parameters.Add("@Artikelgruppe", OleDbType.LongVarChar); parameter.SourceColumn = "Artikelgruppe"; parameter = abfrage.Parameters.Add("@ArtikelNr", OleDbType.Integer); parameter.SourceColumn = "ArtikelNr"; parameter = abfrage.Parameters.Add("@Artikelbezeichnung", OleDbType.LongVarChar); parameter.SourceColumn = "Artikelbezeichnung"; parameter = abfrage.Parameters.Add("@Einkaufspreis", OleDbType.LongVarChar); parameter.SourceColumn = "Einkaufspreis"; parameter = abfrage.Parameters.Add("@Mengeneinheit", OleDbType.LongVarChar); parameter.SourceColumn = "Mengeneinheit"; Die Parameter müssen in der Reihenfolge hinzugefügt werden wie sie im CommandText stehen. Du hast Einkaufspreis und Artikelbezeichnung verdreht. Gruß, Thomas
  11. Hallo, ja gut dann hätte ich mir das alles sparen können Zum Thema Snapshot und SSRS kann ich Dir im Moment leider nichts sagen, da ich diesen Fall noch nicht hatte. Aber kann mich da bei Kollegen mal etwas schlau machen. Migration von Berichten: Kann man die Berichte verschieben/kopieren? Es kommt darauf an... Erstmal wie gesagt reines XML von daher keine Versionsprobleme. Die Dateien (Berichtsdefinition.rdl) kannst Du ja herunterladen. Und ebenso kannst Du im neuen Server diese Dateien auch wieder hochladen. In den Eigenschaften des Berichts siehst Du auf der linken Seite auch einen Abschnitt Datenquelle, hier kannst Du entweder per Hand eine Verbindung eingeben oder eine bereits freigegebene auswählen. Eigentlich sollte dies kein Problem sein, zumindest hat es bei mir bisher IMMER geklappt. Aber ich habe auch schon von Leuten gehört bei denen es nicht funktioniert haben soll. Die Berechtigungen musst Du natürlich neu festlegen, da diese nicht im Bericht sondern eben in der DB gespeichert werden. Viele Grüße, Thomas
  12. Hallo Andi, das Problem ist hier erstmal, dass Du Deinen Parameter immer überschreibst: Somit hast Du nur den letzten Wert in "parameter" gespeichert (ebenso wie dafür die Eigenschaften festgelegt. Gruß, Thomas
  13. Hallo! Ich arbeite seit mehreren Jahren mit den Reporting Services und hoffe Dir dort etwas weiter helfen zu können. Zu Deinen Fragen: Die Reports werden tatsächlich in der DB gespeichert und zwar in der ReportServer$[instanzname]. Das schöne daran ist aber, es kann Dir völlig egal sein wo sie liegen, weil Du "nie" direkt auf die DB zugreifen musst :-) Im Verzeichnis Programme --> Microsoft SQL Server 2008 --> Konfigurationstools --> Konfiguartionsmanager für Reporting Services findest Du alles was du benötigst um Einstellungen vorzunehmen oder vorhandene auszulesen. Was hier interessant ist, ist die Webdienst- und die Berichts Manager URL. Über die Berichtsmanager URL gelangst Du in ein Verwaltungstool für Datenquellen, Berichte, Benutzer, Gruppen etc. Hier werden dir alle Berichte unter einer eventuell vorhandenen Ordnerstruktur angezeigt. Du kannst die Ordner dann anklicken und bekommst vorhandene Berichte angezeigt. Im rechten Bereich der Webanwendung gibt es noch die Option "Details einblenden" womit sich Deine Möglichkeiten etwas erweitern. Du kannst auch Berichte herunterladen bearbeiten und wieder hochladen (aktualisieren).Berichte (Reports) sind reine XML-Dateien (.rdl = Report Definition Language). Wie Du siehst erfolgt kein direkter DB-Zugriff. Wenn Du selbst ein neues Projekt mit Berichten erstellst, kannst Du dieses aus Visual Studio (Business Intelligence Development Studio) heraus veröffentlichen. Nutzer Deiner Berichte können diese dann im Internet Explorer einfach über eine URL aufrufen. Falls Ihr einen "großen" SQL Server besitzt (z.B. Enterprise Edition etc.) so kann man dies alles auch aus dem SQL Server Management Studio heraus erledigen. Man verbindet sich anstatt mit dem Datenbankmodul einfach mit den Reporting Services. Hoffe das hilft Dir etwas weiter! Viele Grüße Thomas
  14. Hallo, also im Debug-Modus funktioniert es? Vielleicht hilft es nach dem ".Hide" ein "Application.DoEvents()" zu setzen? Es ist ja eine Oberflächenaktualisierung, die vielleicht einfach nicht so schnell abgearbeitet werden kann und der Screenshot vor der Aktualisierung erfolgt. Wie gesagt, nur eine Idee... Gruß, Thomas
  15. Hallo Korhil! da hast Du als SP-Beginner aber gleich eine schöne Aufgabe bekommen Vielleicht kann ich Dir dort beim Einstieg etwas helfen... Erstmal zu Deinen Fragen: Du benötigst Windows Server 2003 (Server 2008 hat einen neueren IIS, kein Plan ob man hier etwas anders machen muss). Ob hier ein Webpart die richtige Lösung ist, kann ich nicht sagen. Aber ich denke es würde ausreichen eine der zahlreichen Menüleisten um eine Funktion zu erweitern. Es kommt darauf an was in der Firma vorhanden ist entweder die SharePointServices 3.0 oder der MOSS 2007. WSS ist eine abgespeckte Version des MOSS, sind von den Grundfunktionalitäten aber gleich. MOSS unterstütz weitere Dinge wie Forms Services etc., was für Dich aber erstmal total uninteressant ist. Also sollten hier durchaus die WSS 3.0 ausreichend sein. Ich persönlich nutze hier das VS 2008, aber 2005 geht auch. Hier solltest Du Dich auf das WSS SDK beschränken. Im anderen SDK sind zusätzlich spezifische Dinge des MOSS beschrieben. Ersteinmal "muss" man auf einem Serversystem programmieren auf dem WSS(oder MOSS) installiert ist. Das muss aber nicht (sollte auch nicht) der Produktivserver sein. Ich arbeite hier mit virtuellen Maschinen (Virtual PC). Da Du hier die komplette Installation alleine ausführen musst wirst Du hier viel hilfreiches lernen, da diese Installation nicht "Microsoft-Like" ist. Man muss schon genau wissen wann man was tut. Das gilt besonders für die anschließende Konfiguration! SQL Server 2005 Da SharePoint alle Daten im SQL Server hält benötigst Du diesen ebenso. Also bei einer Installation nicht vergessen! (Natürlich vor den WSS installieren) Wie Du gesagt hast, sind schon Bücher unterwegs. Das ist auch eine kluge Entscheidung gewesen! Du musst Dir wirklich (auch wenns manchmal total langweilig ist ...) einfach Hintergrundwissen zur Architektur und Arbeitsweise von SharePoint anlesen. Was ist eine Webapplication, Sitecollection, Site und so weiter. Wenn Du dieses hinter Dich gebracht hast werden "Features" Deine Freunde sein :-) Das ist die Art und Weise wie in SharePoint Lösungen erstellt werden. Der Vorteil dieser Features ist, Du kannst sie auf einem beliebigen Server veröffentlichen, was auch der große Unterschied zum einfachen Anpassen der WSS über die Oberfläche ist. So könntest Du mit etwas Vorwissen ein Feature entwickeln welches die Aufgabenliste (SPList) ausliest. Was Du dann mit den Daten tust (in Excel pumpen, Drucken, per Mail versenden,...) kannst Du dann in Deinem C# oder VB.Net-Code entscheiden. Noch ein kurzer Tipp zum Schluss: Die Entwicklung im Studio ist am Anfang nur eine Hilfe für Dich um XML (ja davon wirst Du Seitenweise schreiben müssen ) besser darstellen zu können und Dein Projekt zu ordnen. Du musst dort viel handarbeit leisten. Ein Buchtipp für den Einstieg in die SP-Entwicklung: Windows SharePoint Servives 3.0 Programmierung von Ted Pattison und Daniel Larson ISBN: 978-3-86645-632-7 Ich fand das ganz gut zum Einstieg, da hier nicht nur die Entwicklung sondern auch Grundzüge der Architektur und der arbeitsweise von SP gezeigt werden. Es beginnt auch wirklich bei: Mein erstes Feature-HelloWorld Dann erst mal viel Spaß beim Einstieg! Viele Grüße, Thomas
  16. Hallo, ich denke das "Umbiegen" der DB wirst Du in den Einstellungen der installierten Software vornehmen. Irgendwelche Konfigurationsdateien sollten dort vorhanden sein. Das wird Dir im Detail aber nur der Hersteller sagen können. Was ich nicht verstanden habe ist diese Sache: Auf dem neuen Server? Du kannst die Datenbanken auf dem alten Server sichern und auf dem neuen SQL Server wieder herstellen. Du meinst wahrscheinlich auch das SQL Server Management Studio und nicht den Enterprise Manager, oder? Den gibts nur bis SQL Server 2000. Falls dieser noch irgendwie auf dem System vorhanden ist kannst Du "vielleicht" eine Verbindung zum SQL Server 2008 herstellen, aber das solltest Du nicht tun. Das SSMS kannst Du bei Microsoft herunterladen. Aber wie gesagt müssen die Verbindungseinstellungen für den SQL Server irgendwo in der Software hinterlegt sein, es sei denn die Software erwartet einen lokalen Server (denke ich aber eher nicht) oder man kann sich nur bei der Installation entscheiden welcher Server genutzt werden soll. Gruß, Thomas
  17. Hallo! Diese Arbeitsweise kommt aus dem PHP-Bereich. Es wird Dir also nicht gelingen ASPX in die Arbeits- und Programmierweise von PHP zu quetschen. ASPX arbeitet mit einem Postback auf die gleiche Seite, so daß Du natürlich alle Controls in der aktuellen Seite im Zugriff hast. Ich arbeite seit langem mit ASPX und habe vorher auch in PHP entwickelt und der Umstieg ist sehr gewöhnungsbedürftig aber im Endeffekt das beste was man machen konnte. So kann man ganze Bereiche (fachlich) auf einer einzigen .aspx-Page abhandeln. Man kann Bereiche ein- und ausblenden, und somit das Aussehen und die Funktionalität der Seite beeinflussen. Falls es sich garnicht verhindern lässt doch einen Seitenwechsel zu nutzen und auch Daten zu übergeben könntest Du die Session nutzen: protected void Button1_Click(object sender, EventArgs e) { Session["varText"] = TextBox1.Text; Response.Redirect("WebForm1.aspx"); } der Text aus der Textbox wird in der Session-Variablen varText gespeichert. Anschließend leitest Du den Benutzer auf die Seite WebForm1.aspx weiter. Die Session ist so nett und hält die Daten während der gesamten Sitzung des Benutzers für Dich vor. Im PageLoad der WebForm1.aspx initialisierst Du den Text der Textbox mit der in der Session Gespeicherten Information: protected void Page_Load(object sender, EventArgs e) { TextBox1.Text = (string)Session["varText"]; } Aber wie gesagt solltest Du hier nicht ASPX in die Arbeitsweise von PHP quetschen. So hast du mehr Arbeit und wirst viele coole Dinge von ASPX nicht nutzen weil Du dann nur PHP entsprechende Dinge in ASPX suchst. Viele Grüße, Thomas
  18. Hallo, was du dort vor hast ist garnicht so trivial. Ich habe hier mal einen Hinweis: Impersonation aus dem Namespace WindowsIdentity.Impersonate. Hier mal ein Link mit einem Beispiel aus dem MSDN: WindowsIdentity.Impersonate Gruß, Thomas
  19. .NETter

    c# webdav auslesen

    Hallo, hier ein sehr treffender Blogeintrag mit Beispielprojekt: Download von SharePoint Dokumenten - SharePoint Dev und ITPro Blog Aber alle Files herunter zu laden wird Dir noch Probleme bereiten, da eine Auflistung fehlt... Gruß, Thomas
  20. Da ich hier etwas von Kürzeln eintragen gelesen habe... Es wird also auch Text dort eingetragen? Das heißt man müsste auch die Möglichkeit abfangen, dass versucht wird mit einem String zu rechnen: =Sum(CDbl(IIF(Fields!NrVarchar.Value Is Nothing Or Fields!NrVarchar.Value = "","0",IIF(ISNUMERIC(Fields!NrVarchar.Value),Fields!NrVarchar.Value, "0")))) So wird zwar der Text in einem Feld angezeigt in der Formel allerding wie eine Null (0) behandelt.
  21. @ibm1305 ja natürlich muss man hier auch auf einen leeren String prüfen: =Sum(CDbl(IIF(Fields!NrVarchar.Value Is Nothing Or Fields!NrVarchar.Value = "","0",Fields!NrVarchar.Value))) Aber erstmal gings ja um NULL. Gruß, Thomas
  22. Also ich habe mir eine Tabelle zum Test gebaut: Bezeichnung (nvarchar(50)) NOT NULL NrAlsVarchar (nvarchar(10)) ALLOWS NULL Zwei Zeilen enthalten im Feld NrAlsVarchar NULL-Werte. Im Report wird nach dem Einbau der Formel in die "Summenberechnung" der Spalte die Summe auch korrekt berechnet. Die Felder der Tabelle bleiben leer, da ich den Wert der einzelnen Felder nicht anfasse sondern nur in der Summenberechnung eine Formel einbaue. Formel an der richtigen Stelle? Oder noch Formeln in den einzelnen Feldwerten der Tabelle? Gruß, Thomas
  23. Kein Problem Gib mal Feedback ob es funzt. Gruß, Thomas
  24. Was hindert Dich daran meine Formel für Deine Zwecke zu nutzen? =Sum(CDbl(IIF(Fields!rund_6.Value Is Nothing,"0",Fields!rund_6.Value ))) Funktioniert einwandfrei. Keine #Error´s mehr und Nullen werden auch nicht angezeigt...
  25. Hallo, Du kannst die Funktionen jedes einzelnen Feldes ansehen und auch ändern. Rechtsklick aufs entsprechende Textfeld und hier im Kontextmenü "Ausdruck" wählen. Im oberen Bereich wird die die Funktionalität angezeigt mit der Daten in das entsprechende Feld geschrieben werden. Hier prüfst Du den Wert auf NULL (hier wird VB verwendet!): =IIF(Fields!rund_6.Value Is Nothing,"0",Fields!Fields!rund_6.Value) Wird NULL zurückgegeben wird dann eine "0" eingetragen, ansonsten eben der Feldwert. Gruß, Thomas PS: der ReportViewer ist "nur" ein Control welches dir mehr Möglichkeiten zur Verfügung stellt. Die Definition des Berichts erfolgt in RDL (Report Definition Language), wenn die Datei (*.rdlc) mit einem Editor geöffnet wird, findet man hier reines XML.

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...