Nochmal hallo,
jetzt hab ich ja gar nichts zu der Frage gesagt...
Du kannst im Designer des UserControls den Unterkontrollen in den Eigenschaften Modifiers auf public setzen. Dann hast du von aussen Zugriff. Oder Du schreibst eben in Deinem UserControl Propertys über die Du das Control zugreifbar machst.
Du kannst aber auch die Property z.B. nur für den zu setzenden Text schreiben:
public string LabelText
{
get { return label1.Text; }
set { label1.Text = value; }
}
Hallo,
Dein Control Hat eine 'Property' namens Controls und die hat eine Methode Add().
Aber das sind echt Grundlagen, ohne das böse zu meinen empfehle ich Dir, ein Buch zu lesen;
string result = tr.ReadLine();
while((result != null) && (result != "[InternetShortcut]"))
{
result = tr.ReadLine();
}
if(result!=null)
{
result = tr.ReadLine();
}
if(result!=null)
{
// result enthält jetzt die gesuchte Zeile!!
}
// die !=null Abfragen dienen nur zur Sicherheit, auch wirklich die Daten bekommen zu haben.
Hallo,
Du könntest mit tr.ReadLine in einer Schleife die einzelnen Zeilen auslesen. Wenn der gelesene String "[InternetShortcut]" ist, noch eine Zeile lesen: das ist Deine!!
Compact Framework ist am PDA installiert, musste aber die System.dll aus dem "normalen" .NET Framework einfügen, da sonst die MySql.Data.dll nicht geht.
Ich galube nicht daß das funktionieren kann. Wenn die MySql.Data.dll nicht funktioniert mit CF, wird das schon seinen Grund haben. Dann einfach dlls aus dem normalen Framework einzubinden halte ich für den falschen Weg -> die wäre ja nicht anders, wenn der PPC das alles könnte was drinsteht. Von daher wirst Du dann zwangsläufig früher oder später auf Probleme stoßen.
Schau lieer mal, ob's by MySql schon was fürs CF gibt, wenn nicht: Versuche herauszufinden warum MySql.Data.dll nich in CF funktioniert, und dann was zu stricken, was Dir den Zugriff erlaubt (könnte aber u. U. schwierig werden).
Original von blackcoin
die einzelnen Forms werden nur unsichtbar gemacht sin aber immer noch vorhanden
und du erzeugst die objekte immer wieder neu
Wieso? Form1 wird doch einmal erstellt und mit Show() und Hide() behandelt, Form2 wird immer neu erstellt aber auch mit Close() geschlossen. Wo ist das Problem?
Hallo,
beim nochmal lesen fällt mir auf ->
C:\Documents and Settings\Tim\Desktop\temp\hello.xml
das enthält Leerzeichen und muss daher gequotet werden.
Hallo,
ich bin mir nicht sicher, aber lies mal den folgenden Artikel, vielleicht kannst Du damit Dein Problem lösen.
v.a. der Absatz "Func eval and multithreading" dürfte interessant sein.
Hallo,
eine "ungebundene" Datenbank kannst Du in dem Sinne auch nicht mit VS 2005 erstellen. Sie wird dann nur eben erst bei Programmstart bzw. Aufruf im Server attached.
--> vgl. Verbindungszeichenfolge der DB-Datei:
Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Pfad\zur\DB\Database1.mdf";Integrated Security=True;User Instance=True
Du kannst Dir aber helfen indem Du die DB wie oben anlegst und dann vom Server mittels der Stored Procedure "sp_detach_db" wieder die Serverbindung entfernst.
EDIT: d.h. die aus VS 2005 erstellte Datenbank ist zwar zunächst nicht an einen Server gebunden, aber ein Rechner auf dem kein SQLEXPRESS läuft wird die DB auch nicht öffnen können.
Hallo,
du kannst ja selbst eine Datei mit Benutzereinstelungen erstellen und dahin speichern -> der Aufruf Application.LocalUserAppDataPath müsste auch für PDA funktionieren.
Hallo,
fäält mir jetzt leider nur wenig dazu ein, aber vielleicht hängts irgendwo hier, ich geb Dir mal meine Einstellungen durch:
In den Eigenschaften der Form:
FormFactor: PocketPC 2003 -> dieses Property legt die verwendete skin fest.
Skin: True -> Bei mir geht's, das ist auch die gleiche Einstellung, die sich ändert, wenn ich mit der rechten Taste das "Design anzeigen" mache.
In der resx-Datei zur Form habe ich dann noch:
$this.FormFactorShadowProperty mit dem Wert POCKET_PC_2003_PORTRAIT
sonst wüßt ich jetzt nix, weiß auch nicht genau wie das alles zusammenhägnt, hab einfach mal die Sachen rausgeschrieben, von denen ich vermute, daß sie damit zu tun haben könnten...
Wisst Ihr auch wie ich bei Mobile5.0 Anwendungen zur Entwurfszeit
das graue Form ersätzt bekomme durch das abbild eines PDAs wie
bei Mobile2003 Anwendungen?
Hallo,
das dürfte ein Problem von Benutzerberechtigungen im Dateisystem sein.
Der SQL-Server wird unter einem Konto ausgeführt, das auf c:\ keine Schreibberechtigung besitzt. Die Schreibberechtigung muss in dem Ordner, in dem die Datenbank erstellt werden soll, für das NT-Prinzipal "NETZWERKDIENST" erteilt werden. (Berechtigung eintragen wie für Benutzer oder Gruppe, im ensprechenden Dialog kann man unter "Erweitert" das Prinzipal auch über die Suche finden und auswählen)
Du kannst in Windows Mobile AFAIK keine Fenster erstellen, die nicht maximiert sind - das ist da anders konzipiert. Habe ich auch bisher nur bei MessageBoxes gesehen... Fände aber auch interessant, obs irgendwie möglich ist.
Die Tastatur müsstest Du einblenden können, wenn Du der Form einfach ein leeres MenuBar gibst.
private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{
//Daten in Textboxes anzeigen
// !! Hier dsKunden besetzen!!
dsKunden = AlleAnzeigen();
// --> dann könntest Du aber AlleAnzeigen auch gleich hier auf aset zuweisen.
DataSet aset=dsKunden;
DataTable atable=aset.Tables["Kunden"];
DataRow arow=atable.Rows[this.DataGrid1.SelectedItem.ItemIndex];
this.Textbox8.Text=arow.ItemArray[0].ToString();
this.TextBox2.Text=arow.ItemArray[1].ToString();
this.TextBox3.Text=arow.ItemArray[2].ToString();
this.TextBox4.Text=arow.ItemArray[3].ToString();
this.Textbox5.Text=arow.ItemArray[4].ToString();
this.Textbox6.Text=arow.ItemArray[5].ToString();
this.Textbox7.Text=arow.ItemArray[6].ToString();
this.TextBox9.Text=arow.ItemArray[9].ToString();
}
oder dsKunden in der Session halten
// zum speichern in der Sitzung wird
dsKunden = AlleAnzeigen();
// dann zu
Session["dsKunden"] = AlleAnzeigen();
// zum laden aus der Sitzung
aset = (DataSet)Session["dsKunden"]
Hallo,
ich finde die Methode mit mySerialPort.BytesToRead besser.
Du kannst dann einen ByteConverter benutzen, um das gelesene Bytearray zum String zu konvertieren.
Wenn du das in einer Schleife machst und die Daten immer wieder an den selben String anhängst, kannst Du diesen String auswerten und bearbeiten.
Hallo,
da liegt wahrscheinlich genau das Problem:
die DataTable wird gefüllt, dann ist der ClickHandler zu Ende und die Seite wird erstmal an den Client ausgeliefert. Wenn dann die nächste Anfrage an den Server kommt, ist dsKunden wieder leer, da eine neue Instanz der Page erstellt wurde.
Lösungsmöglichkeiten:
- dsTables in Page_Load besetzen oder
- dsTables in Deinem Handler besetzen vor der Zuweisung auf aset oder
- dsTables nicht als private Variable, sondern in der Session unterbringen -> dann bleiben Dir die Daten erhalten.
Hallo,
die Fil-Methode wird nicht automatisch neu generiert wenn sich die Struktur der Datenbank ändert. Allerdings ziehen solche Änderungen ja oft nach sich, daß man diese Methoden neu erstellen muss -> z.B. es kommt eine Spalte hinzu, die dann auch noch abgefragt werden soll oder sowas. Und dann müsstest Du jedesmal von Hand da wieder einsteigen.
Zitat
Mit der Verknüpfung ist das so eine Sache. Vor allem, da ich einige dieser IDs in meinen Tabellen habe und diese auch bei einem Update/Insert korrekt gefüllt werden müssen.
Ich habe für Update/Insert die mit der Haupt-Query generierten Methoden benutzt. Dann musst Du allerdings von Hand dafür sorgen, dass die neuen Spaltenwerte auf die richtigen ID's gemappt werden.
Vielleicht gibt's auch noch was einfacheres -> da muss ich mich jetzt allerdings ausklinken.
Hallo,
der Port sollte in einer while-Schleife in einem eigenen Thread gelesen werden.
Die empfangenen Daten dann immer wieder aus dem Bytearray rausschreiben in eine Variable, testen ob START enthalten ist, Länge prüfen, dann wenn alle benötigten Daten da sind ein Event feuern das die Daten in den EventArgs enthält. Die im Event abgesetzten Daten dann aus der Variablen entfernen und so weiter...
Das Event fängst Du dann an der Stelle ab wo Du die Daten verarbeiten willst.
EDIT: Das Beispiel in der MSDN zu Serieller Verbindung:
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.de/dv_fxsamples/html/27830a89-5b80-4f85-bde8-e146ae37035c.htm
Hallo,
die Fill buw. FillBy-Methoden zu verändern halte cih für ungünstig -> wenn sich mal was ändert, werden diese Methoden ja ggf. neu generiert.
Du könntest eine zusätzliche Query in einem DataAdapter hinzufügen und den JOIN direkt im SELECT dieser Query machen. Die entsprechende Methode dann z.B. mit FillByExt benennen und diese benutzen. Der Rest geht ja dann automatisch -> Das wird nur etwas kompliziert nei Update/Insert.
Hallo,
Hast Du mal im Debugger geschaut ob vielleicht Dein Handler schon aufgerufen wird bevor dsKunden initialisiert wird? -> Das würde den Effekt erklären. dsKunden sollte auf jeden Fall im Page-Load besetzt werden.