Verwendest du irgendwelche Komponenten (DLLs)?
Hatte schon häufiger das Problem mit nicht sauber programmierten DLLs, die dann meine komplette Anwendung abgeschlossen haben. Einfach weg - ohne Fehlermeldung.
Was ähnliches hatte ich auch mal als ich mit C# im unmanaged-Speicher gearbeitet habe... nicht genug Speicher allociert und schon war die Anwendung weg - auch ohne Fehlermeldung (und noch dazu auf Windows Mobile 5 - das ist fies 🙂)
Nutzt du vielleicht was in der Richtung?
Mit dem Property
Page.IsPostBack
kannst du prüfen, ob die Seite das Ergebnis eines Postbacks (wie z.B. eines Klicks auf einen Button) ist. Wenn eine Funktion nur einmal beim ersten Laden der Seite ausgeführt werden soll machst du das am besten so (in Page_Load):
if (!Page.IsPostBack)
{
Bind_Data();
}
Die Funktion Bind_Data wird dann nur dann ausgeführt, wenn die Seite kein Ergebnis eines Postbacks ist, d.h. wenn sie zum ersten Mal geladen wurde.
Also,
wenn du Fibonacci richtig schreibst findest du was bei Wikipedia:
http://de.wikipedia.org/wiki/Fibonacci-Folge
Da steht schon mal das Bildungsgesetz drin.
Das einfach noch in ne Funktion einbauen und die Funktion dann rekursiv aufrufen. (Abbruchbedingung nicht vergessen !!!)
Verschoben wahrscheinlich deswegen, weil das was du willst eine grundsätzliche Frage zu .NET ist und keine spezielle Frage der Webtechnologie.
Mal kurze Frage.... in welchen Bundesländern gibts denn so ne "besondere Lernleistung" überhaupt? Bei uns in Bayern hätte ich noch nie was davon gehört...
Wie du geasgt hast... XML und Webservices in C# sind ne gute Sache...
Ich selbst hab als Abschlussprojekt (Ausbildung Informatikkaufmann) nen Webservice programmiert und damit einen veralteten Datenübertragungsprozess abgelöst... War recht schön zu machen weil du direkt die Vorteile ggü. dem alten Weg darstellen konntest. Bei mir war dann auch noch bisserl BizTalk (als Client des WS) und SQL-Server (Datenstorage) dabei.
Die Prüfer haben gemeint dass es eigentlich für nen Informatikkaufmann arg technisch ist, aber für dich würd so was sicher passen.
Das mit den 2 Wochen Zeit vergiss besser gleich mal.. allgemeine Erfahrung zeigt dass du mind. das doppelte Rechnen musst...
Außerdem: Die IHK schluckt nicht alle Themen...
P.S.: Hatte bei der mdl. Prüfung das Glück zwei C# Programmierer im Prüfungsausschuss zu haben 🙂 --> Es ist KEIN Nachteil wenn jemand drin sitzt, der sich mit so was auskennt.. Kennt sich jemand nicht aus dann kann er auch die Qualität deiner Arbeit nicht beurteilen.
P.P.S.: Bei Bedarf kann ich dir die Doku zur Verfügung stellen... Ist vielleicht ne Anregung für die Themenauswahl.... (Haben von unseren BS-Lehrern auch etliche Dokus zum durchlesen bekommen)
Hallo,
erst Mal danke für die Antwort.
Allerdings suche ich eine etwas "einfachere" Lösung - die auf Codeproject ist das ja nicht grade...
Hat vielleicht noch jemand ne Idee / nen Link für mich ?
Hallo zusammen,
ich möchte gerne folgendes Realisieren:
Auf einer ASPX-Seite klickt der User einen Button an, darauf öffnet sich in einem neuen Fenster (Popup) eine zweite Seite. Über die zweite Seite ermittelt der Benutzer über eine Suchfunktion Informationen. Diese Informationen sollen dann vom Popup wieder zurück an das Aufrufende Fenster übergeben werden.
Hab mir mal die Posts mit dem Schlagwort "Popup" angesehen, aber nix passendes gefunden... Hat jemand vielleicht ein Beispiel für so was ?
Schau dir mal meinen Post in diesem Beitrag an:
Problem: Alle Dateien in einem Ordner lesen und in eine einzige kopieren ?
Da sieht du wie man alle Textdateien in einem Unterordner findet....
Versuchs mal hiermit:
(Am Code lernt mans immer noch am besten)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace TestXX
{
public partial class Form1 : Form
{
StreamWriter NewFile;
StreamReader Reader;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.NewFile = new StreamWriter(@"c:\test.txt", false);
this.ConcatTextfilesInFolder(@"c:\test", "*.txt");
this.NewFile.Close();
}
private void ConcatTextfilesInFolder(string Folder, string FileFilter)
{
string[] Files = Directory.GetFiles(Folder, FileFilter);
foreach (string Singlefile in Files)
{
Reader = new StreamReader(Singlefile);
this.NewFile.WriteLine(Reader.ReadToEnd());
Reader.Close();
}
string[] Subdirectories = Directory.GetDirectories(Folder);
foreach (string Subdirectory in Subdirectories)
this.ConcatTextfilesInFolder(Subdirectory, FileFilter);
}
}
}
Grüße telnet
Leider hat du nicht drauf geantwortet welche Art von Applikation du entwickelst. Sollltest du einen Dienst im Sinn haben würd ich dir von Windows.Forms.Timer abraten, da ich in dem Zusammenhang schon oft Probleme hatte, dass der Timer nicht mehr lief....
Stattdessen verwende ich den System.Timers.Timer.. einfach mal ausprobieren und Ergebnis posten..
Danke für den Tipp... hab allerdings nur im Forum was dazu gefunden.. hast du vielleicht nen Link zu nem Artikel?
Bleibt nur noch die Frage wie ich eine permanente (zyklische) Überwachung realisiere..
Hallo zusammen,
ich wüsste gerne ob es möglich ist, einen Dienst für das Compact Framework zu entwickeln? (Evtl. hat sogar jemand nen Link)
Vorhaben ist folgendes: Ich brauche eine Anwendung, die permanent prüft, ob eine GPRS-Verbindung von einem Pocket PC aufgebaut ist.
Gruß
Bisserl Code wäre nicht schlecht...
Welche Art von Programm (Service, Windows Forms) Anwendung schreibst du und welchen Timer (System.Timers.Timer, System.Threading.Timer oder System.Windows.Forms.Timer) verwendest du?
Wenn du Windows 2003 Server hast dann stehen die Reboots mit dem angegebenem Grund sowieso im Windows-Eventlog.
Und wenn dir dein Rechner abraucht (Absturz) dann wirst du eher keine Möglichkeit haben in dem Moment noch was mitzuschreiben. Das einzige was du da bekommst ist der Memory-Dump aus Windows aber da was rauszufinden ist denke ich nicht wirklich leicht....
Bzgl. CPU Temperatur erinnere ich mich hier mal was gelesen zu haben --> Boardsuche!
Evtl. könntest du ja ein Tool deines Mailboardherstellers anzapfen 🙂?
Ausrechnen ist am einfachsten:
Für beide Geraden die Gleichungen aufstellen und dann mit x = (b2 - b1) / (a1 - a2) (a = Steigung, b = Y-Achsenabschnitt) die X-Koordinate des Schnittpunkts berechnen. Den Wert setzt du dann in deine beiden Ursprünglichen Geradengleichungen ein und wenn das gleiche rauskommt schneiden sich die beiden genau in dem errechneten Punkt...
Kann man wunderbar automatisieren....
Hallo, tut mir leid dass ich keine Antwort auf deine Frage habe..
Aber könntst du mir vielleicht verraten mit welchem Prog du dein Bildschirmvideo aufgezeichnet hast ?
Bei char und nchar wird auf die angegebene Länge aufgefüllt, bei varchar und nvarchar wird immer nur der tatsächlich verbrauchte Platz belegt...
Alles eine Frage der Datentypen 🙂
Das ganze kannst du machen indem du über die nächsthöhere Ebene gehst: Die ContentPage selbst.
Denke es würde funktionieren wenn du in deinen ContentPage einen EventHandler für das Usercontrol mit dem Button registrierst. Der wird dann immer beim Klicken aufgerufen.
Von der ContentPage aus hast du dann auch Zugriff auf die anderen Controls...
Kann das Problem jetzt nicht erkennen aber mach mal folgenes:
public class Form2 : System.Windows.Forms.Form
durch
public class Form2 : Form1
ersetzen
4. Dem Form1 im Designer einen neuen Button in der oberen linken Ecke hinzufügen und folgenden Code in den Eventhandler für das Klicken schreiben:
new Form2().Show();
MessageBox.Show(this.Name);
Wie gesagt, ohne weitere Informationen kann ich nicht sagen wie du zu deinem Problem kommst, aber vielleicht hilfts was wennn du das mal durchmachst...
Hab das ganze mit VS 2003 gemacht.. sollte aber kein Problem sein.
Hab grad Testweise eine neue Anwendung erstellt und einen Butten hinzugefügt und direkt den Code aus dem Post drangehängt. Geht einwandfrei bei mir...
Probiers mal genau so, wenns ned geht dann evtl. Debuggen...
Denk mal das sollte am einfachsten über die Klasse TreeNode gehen...
Du definierst einen RootNode und unter den RootNode kannst dann über die Property Nodes weitere Nodes hängen und da dann wieder welche drunter usw...
Alternativ könntest du dir ein DataSet mit drei Spalten anlegen, die ersten beiden als Int und die letzte als Name.
Die erste Spalte wird die ID des Knoten (Primärschlüssel). Die zweite Spalte gibt die ID des Vorgängers an. In die dritte kommt einfach die Bezeichnung.
Die Einträge der obersten Ebene bekommen -1 als Vorgänger.
Würde dann so aussehen:
KFZ (Vorgänger -1; ID 1)
|
|-- AUTO (Vorgänger 1; ID 2)
| |-- Audi (Vorgänger 2; ID 4)
| |-- Opel (Vorgänger 2; ID 5)
|
|-- MOTORRAD (Vorgänger 1; ID 3)
| |-- BMW (Vorgänger 3; ID 6)
| |-- Kawasaki (Vorgänger 3; ID 7)
Kann man dann auch super in ner DB speichern....
Lass es bleiben und nimm das:
string[] tmp;
char splitChar = '|';
DataRow[] dra;
DataTable table = new DataTable("Daten");
table.Columns.Add(new DataColumn("Zahl1", typeof(int)));
table.Columns.Add(new DataColumn("Name", typeof(string)));
table.Columns.Add(new DataColumn("Zahl2", typeof(int)));
table.Columns.Add(new DataColumn("Char", typeof(char)));
string[] strA = new string[5];
strA[0] = "0001|Hans|22265|a";
strA[1] = "0004|Josef|24465|f";
strA[2] = "0002|Brigitte|24465|s";
strA[3] = "0005|Georg|22345|o";
strA[4] = "0003|Manuela|12265|m";
foreach (string s in strA)
{
tmp = s.Split(splitChar);
table.Rows.Add(new object[] {int.Parse(tmp[0]), tmp[1], int.Parse(tmp[2]), char.Parse(tmp[3])});
}
dra = table.Select("", "Zahl1");
for(int i = 0; i < dra.Length; i++)
Console.WriteLine(dra[i]["Zahl1"].ToString() + " - " + dra[i]["Name"].ToString() + " - " + dra[i]["Zahl2"].ToString() + " - " + dra[i]["Char"].ToString());
DataTable, DataSet und co. würde ich dir auf alle Fälle ans Herz legen... Vor allem wenn du Datensätze in ein File schreiben und wieder lesen willst empfehlen sich die Methoden ReadXml() und WriteXml() des DataSet...
Blöde Frage:
Warum liest du die Daten nicht einfach in eine DataTable? Der Select()-Methode der DataTable kannst du dann einen Parameter für die Sortierung mitgeben und den DataRow[] den du rausbekommst durchläufst du einfach und schreibst die Daten in deine TextBox weg....
Warum verwendest du innerhalb des if-Teils nicht
Convert.ToDateTime(dSet.Tables["Stamm"].Rows[0]["Geburtsdatum"].ToString());
?
Außerdem initialisert du ja in der ersten Zeile das Datum. Die Variable hat ja dann einen Wert.. Warum sollte dann auf einmal nix ausgegeben werden?
Ich würde als Ansatz mal versuchen
DateTime geburtsdatum;
if(){...}
txt_geburtsdatum.Text = geburtsdatum == null ? string.Empty : geburtsdatum.ToShortDateString();
Gruß
Hallo zusammen,
ich verwende ein TreeView zur Navigation. Dabei habe ich folgende Struktur
-LINK
-Gruppe
-----LINK
-Gruppe
-----Gruppe
---------LINK
Wenn ich jetzt irgendeinen der beiden Links anklicke, dann wird automatisch auch die andere Gruppe geöffnet.
Kann man das irgendwie verhindern?
Ich hoffe ich verstehe dich jetzt genau aber ich würde sagen was du brauchst ist ein Typed DataSet.
Einfach dem Projekt mit Add - Add New Item... - Data Set ein neues DataSet hinzufügen und die Tabelle deiner Wahl mit den passenden Datentypen definieren.
Dann das DataSet im Code instanzieren mit
DeinDataset ds = new DeinDataset();
Anschließend kannst du mit
ds.DeineTabelle.AddDeineTabelleRow(string s, int i);
direkt Daten mit dem richtigen Typen in die Tabelle schreiben.
Anschließend kannst du mit
ds.WriteXml();
das DataSet in ein XML wegschreiben. Wenn du die Daten wieder brauchst lädst du die Daten einfach mit
ds.ReadXml();
und kannt sofort mit den richtigen Datentypen auf die Daten zugreifen.
Convert.ToDateTime(string s) ist aber leider nur schwer zu verwenden, wenn nur eine Zeit in der Form hh:mm vorliegt...
Hab leider jetzt keine Möglichkeit nachzusehen, aber wäre hier evtl. die Verwendung von DateTime.ParseExact() angebracht?
Code sagt meistens mehr als alles andere:
int anfangStunde, anfangMinute, anfangSekunde;
int dauerMin;
int pauseMin;
int anzahlVorgaenge;
DateTime basis;
anzahlVorgaenge = 10;
dauerMin = 15;
pauseMin = 5;
anfangStunde = 8;
anfangMinute = 0;
anfangSekunde = 0;
basis = DateTime.MinValue.Add( new TimeSpan( anfangStunde,
anfangMinute, anfangSekunde));
for(int i = 0; i < anzahlVorgaenge; i++)
{
Console.WriteLine("Start: " + basis.ToShortTimeString());
basis = basis.Add(new TimeSpan(0, dauerMin + pauseMin, 0));
Console.WriteLine("Ende: " + basis.ToShortTimeString());
}
Was in der Richtung hab ich auch schon direkt bei Microsoft gelesen... Dachte es geht vielleicht einfacher... Umsteigen auf .NET wäre ja aus meiner Sicht angesagt aber was solls...
Hallo zusammen,
habe hier folgende Problemstellung:
Es existiert eine Website, die in normalem (nicht .NET !) ASP geschrieben ist.
Das Web ist so im IIS Manager konfiguriert, dass unter Anonymous Login ein Benutzer eingetragen ist, der Rechte auf ein bestimmtes Verzeichnis hat.
Jetzt soll das Web so abgesichert werden, dass für das Web die Integrierte Windowsauthentifizierung eingeschaltet wird. Die Zugriffsrechte werden auf Dateiebene auf eine Domänengruppe gesetzt.
Soweit so gut.
Problem dabei ist, dass die Anwendung auf dem Webserver jetzt nicht mehr im Kontext des unter anonymous User eingetragenen Accounts läuft und daher nix mehr funktioniert.
Gibt es eine einfache Lösung, wie ich es schaffe, nur Zugriffe auf ein Web zuzulassen, die über einen Domainaccount (kann auch lokale Gruppe sein) aus einer bestimmten Gruppe kommen und dabei gleichzeitig die Anwendung unter einem festgelgten anderen Domänenaccout laufen zu lassen?
Danke schon mal für eure Ideen!
Die is dir sicher abgelaufen.. Am besten rufst mal beim Kundenservice von D2 an...
Vielleicht hilft das was (auf die Schnelle gefunden):
Hab jetzt leider nix zum probieren da...
Das ist falsch:
int a;
while(a > 10)
{
// Machwas
}
So ists besser:
int a = 100;
while(a > 10)
{
// Machwas
}
Teilweise haben die Handys keinen Simlock in der Form dass nur eine SIM geht sondern nur die eines bestimmten Anbieters.
Würde mal bei deinem O2 Anbieter nachfragen - wenn das Handy älter als 2 Jahre bist kriegst i.d.R. kostenlos einen Code zum freischalten.
Ablaufen tun Karten schon, allerdings nur wenn es Prepaid Karten sind. Die laufen ab wenn du Sie ne bestimmte Zeit nicht auflädst.
Und wenn du alles in eine Zeile schreibst?
textBox3.Text = ds.Tables["hersteller"].Rows[0]["Hersteller"].ToString();
Kürzer gehts glaub ich ned.
Allerdings fallen mir ein paar Sachen auf, die ich nicht unbedingt machen würde:
Wie ist da so die allgemeine Meinung dazu?
Also eigentlich sollte das aber funktionieren (zumindest lt. Doku).
Hast du nicht zufällig vergessen das "Multiline" Property auf true zu setzen?
Hallo,
sorry hatte den Thread aus den Augen verloren...
hab dir mal ein Beispiel angehängt..
Hab dabei keine einzige Zeile Code geschrieben sondern alles mit dem Designer erstellt!!!
Versteh jetzt das Problem nicht so ganz...
Den Dateinamen der neuen Datei hast du ja sowieso... ist ja der zweite Parameter der Methode File.Move().
Den rest hast ja eh schon im Beispiel drin. Wo liegt das Problem genau?
FileInfo info;
string neusteDatei;
string[] files;
DateTime neusterZeitstempel;
neusteDatei = string.Empty;
neusterZeitstempel = DateTime.MinValue;
files = Directory.GetFiles(@"c:\test");
if(files.Length == 0) return;
foreach(string file in files)
{
if(File.GetLastWriteTime(file) > neusterZeitstempel)
{
neusteDatei = file;
neusterZeitstempel = File.GetLastWriteTime(file);
}
}
info = new FileInfo(neusteDatei);
File.Move(neusteDatei, info.Directory + @"\" + info.Name.Remove(info.Name.Length - info.Extension.Length, info.Extension.Length) + ".jpg");
Sollte so funktionieren.. Tuts zumindest bei mir... Wenn keine Datei im Verzeichnis c:\test ist bricht die Methode ab... sonst gibts beim File.Move() ne Exception weil er keine Datei hat...
Grüße telnet
Ich persönlich würde so was mit nem Webservice realisieren, der die Daten engegennimmt und auf deine Kriterien prüft.
Wenn alles ok ist in ne Datenbank wegschreiben.
Die Webseite selbst ruft dann die (neuen) Daten aus der Datenbank ab.
Ist eine von deinen beiden Instanzen im Debugmode aus VS raus gestartet?
Die Möglichkeit gibts schon, allerdings is da Handarbeit angesagt.
Auf das Datagrid musst du einen TableStyle legen und darin die entsprechenden ColumnStyles definieren, die auf die Felder der Datenquelle (DataTable) gemappt werden. Diese ColumStyles haben eine Eigenschaft Width, über die du die Breite definieren kannst.
Wenn du die Breite an einem bestimmten String ausrichten willst kannst zur Bestimmung der Breite des Strings die Funtkion MeasureString() verwenden.
Ok.. 1x auf dem Schlauch gestanden.... das ganze in ein if(!Page.IsPostBack) rein dann wird der Parameter auch nur einmal bearbeitet...
Frage selber beantwortet... Trotzdem würd mich interessieren ob man die Params evtl. doch modifizieren kann....
Hallo zusammen,
habe hier grad folgende Problem:
Ich rufe eine ASPX-Seite mit einem Parameter auf, der in der Page_Load-Methode verarbeitet wird.
Was ich will ist, dass der Parameter aber nur beim ersten Aufruf der Seite verarbeitet wird und dann beim Postback der Seite nicht mehr beachtet wird. Leider kann ich ihn aus Request.Params nicht rauslöschen, da die NameValueCollection ja read-only ist....
Wie krieg ich das sonst hin?
Danke schon Mal!
Die Variable r bekommst du ja von der Instanz der Klasse Saving.
Bist du dir sicher, dass du das Property sv_r der Klasse Saving auch initalisiert hast?
Guckst du unter:
Da ist ein kleines Beispiel drin wie man Parameter verwenden kann, hier am Beispiel der ID (Parameter "@ID").
Das DataTable-Objekt hat erstmal gar keine Spaltenbreiten, weil es nicht für die Anzeige der Daten zuständig ist.
Daher nehme ich an, dass du deine DataTable an ein DataGrid binden willst.
Mit dem DataGrid werden die Daten der Table angezeigt.
Die Breite der Spalten kannst du dann einstellen, indem du dem Datagrid einen TableStyle (Property TableStyles) hinzufügst.
Ein solcher TableStyle bekommt dann für jede Spalte einen GridColumnStyle (ebenfalls ein Property, diesmal aber des TableStyles).
Als MappingName gibt du dem GridColumStyle dann die Bezeichnung der Spalte (ist notwendig damit .NET den Style auch zuordnen kann - ansonsten passiert nix).
Mit der Property "Width" des GridColumnStyle kannst du dann die Breite der Spalte in Pixeln einstellen.
Aber da war wohl einer schneller....
Versuch mal als CommandText das:
"DELETE Vokabeln.Englisch, Vokabeln.Deutsch " +
"FROM Vokabeln WHERE " +
"(Vokabeln.Englisch = '" + englisch + "') +
"AND (Vokabeln.Deutsch = '" + deutsch + "')";
Verändert:
Versuch mal
Excel.Range rng = Excel.Worksheet.Cells["1,1"];
rng.NumberFormat = "@";
rng.Formula = "1.1";
Natürlich dabei die entsprechende Zelle in deinem Worksheet als Range-Objekt verwenden...
Kannst auch Zahlen formatieren indem du z.B. als FormatString "0,00" verwendest (rundet auf zwei Dezimalstellen)...
Hallo,
direkte Antwort hab ich leider keine parat, kann mich aber erinnern mal das Buch "Visual C# 2005 für Profis" durchgeblättert zu haben.
Soweit ich weis waren da etliche Beispiele für die Bearbeitung von Grafiken mit GDI+ drin...