Laden...
T
telnet myCSharp.de - Member
Senior Software Engineer Dabei seit 14.05.2006 327 Beiträge
Benutzerbeschreibung

Forenbeiträge von telnet Ingesamt 327 Beiträge

18.08.2006 - 12:02 Uhr

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?

14.08.2006 - 12:59 Uhr

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.

10.08.2006 - 13:37 Uhr

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.

08.08.2006 - 11:28 Uhr

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

08.08.2006 - 11:25 Uhr

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)

31.07.2006 - 10:33 Uhr

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 ?

28.07.2006 - 13:47 Uhr

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 ?

27.07.2006 - 21:53 Uhr

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

25.07.2006 - 21:54 Uhr

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

19.07.2006 - 16:31 Uhr

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

19.07.2006 - 11:36 Uhr

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

19.07.2006 - 08:55 Uhr

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ß

18.07.2006 - 19:54 Uhr

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?

18.07.2006 - 19:51 Uhr

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 🙂?

17.07.2006 - 18:38 Uhr

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

15.07.2006 - 21:43 Uhr

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 ?

15.07.2006 - 20:08 Uhr

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 🙂

14.07.2006 - 14:58 Uhr

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

13.07.2006 - 18:33 Uhr

Kann das Problem jetzt nicht erkennen aber mach mal folgenes:

  1. Neue Applikation für Windows Forms erstellen (automatisch erstellter Form heißt Form1)
  2. Der Anwendung einen neuen Form hinzufügen (Form2)
  3. In der Datei Form2.cs diese Zeile
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();
  1. Dem Form2 im Designer einen Button in der rechten oberen Ecke hinzufügen mit folgendem Code im Eventhandler (im Designer erscheint auch der Button, den du durch die Abteilung von Form1 erhältst):
MessageBox.Show(this.Name);
  1. Anwendung mit F5 starten. Du bekommst das Form1 angezeigt. wenn du auf den Button oben links klickst öffnet sich ein neues Fenster (Form2) mit zwei Buttons. Wenn du auf den oben rechts klickst bekommst du den Namen angezeigt.

Wie gesagt, ohne weitere Informationen kann ich nicht sagen wie du zu deinem Problem kommst, aber vielleicht hilfts was wennn du das mal durchmachst...

13.07.2006 - 17:44 Uhr

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

13.07.2006 - 17:40 Uhr

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

13.07.2006 - 17:27 Uhr

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

13.07.2006 - 17:13 Uhr

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

12.07.2006 - 22:18 Uhr

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ß

12.07.2006 - 10:37 Uhr

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?

06.07.2006 - 20:04 Uhr

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.

06.07.2006 - 19:55 Uhr

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?

06.07.2006 - 17:28 Uhr

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());
}

05.07.2006 - 18:33 Uhr

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

05.07.2006 - 15:53 Uhr

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!

04.07.2006 - 13:26 Uhr

Die is dir sicher abgelaufen.. Am besten rufst mal beim Kundenservice von D2 an...

04.07.2006 - 12:09 Uhr

Vielleicht hilft das was (auf die Schnelle gefunden):

http://www.microsoft.com/germany/msdn/library/net/compactframework/ErsteSchritteMitDemNETCompactFramework.mspx?mfr=true

Hab jetzt leider nix zum probieren da...

04.07.2006 - 12:05 Uhr
  1. Setzt du EventArgs e.Handled = true ?
  2. Du verwendest eine nicht instanzierte Variable, wahrscheinlich in der Bedingung der while-Schleife.

Das ist falsch:


int a;
while(a > 10)
{
  // Machwas
}

So ists besser:


int a = 100;
while(a > 10)
{
  // Machwas
}

  1. Kommt ganz drauf an, wann genau der Code ausgeführt werden soll. Evtl. auf die Events "Form.Closed" oder "Form.Closing" reagieren oder den Code in die Dispose-Methode reinschreiben.
04.07.2006 - 11:59 Uhr

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.

04.07.2006 - 11:50 Uhr

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:

  1. Datenbankfelder mit Leerzeichen ("Hardware ID")
  2. Umlaute schreiben (Variable string zähler)

Wie ist da so die allgemeine Meinung dazu?

04.07.2006 - 11:45 Uhr

Also eigentlich sollte das aber funktionieren (zumindest lt. Doku).

Hast du nicht zufällig vergessen das "Multiline" Property auf true zu setzen?

29.06.2006 - 22:25 Uhr

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

29.06.2006 - 22:14 Uhr

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?

29.06.2006 - 17:42 Uhr

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

29.06.2006 - 17:23 Uhr

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.

29.06.2006 - 11:15 Uhr

Ist eine von deinen beiden Instanzen im Debugmode aus VS raus gestartet?

27.06.2006 - 15:28 Uhr

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.

27.06.2006 - 13:08 Uhr

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

27.06.2006 - 12:59 Uhr

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!

26.06.2006 - 19:37 Uhr

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?

23.06.2006 - 09:05 Uhr

Guckst du unter:

SqlAbfrage in C#

Da ist ein kleines Beispiel drin wie man Parameter verwenden kann, hier am Beispiel der ID (Parameter "@ID").

22.06.2006 - 18:10 Uhr

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

22.06.2006 - 18:03 Uhr

Versuch mal als CommandText das:


"DELETE Vokabeln.Englisch, Vokabeln.Deutsch " + 
     "FROM Vokabeln WHERE " +
          "(Vokabeln.Englisch = '" + englisch + "') +
          "AND (Vokabeln.Deutsch = '" + deutsch + "')";

Verändert:

  1. Überflüssige Klammern raus
  2. Einfache Anführungszeichen vor und nach den Parametern in der WHERE Klausel
22.06.2006 - 15:33 Uhr

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

19.06.2006 - 19:19 Uhr

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