Moin jungs,
so ich hab ein little problem und zwar möchte ich gerne daten aus einem dataview speichern und zwar in einen *.txt file. dies macht mein proggy auch doch nur sehr sporadisch. denn immer wenn ich auf speicher geh schreibt er mal 5 von 10 mal 3 von 10 mal 8 von 10 einträgen usw.
ich hätte doch aber gerne alle daten gespeichert. wo kann denn der fehler liegen??
so was noch is ich hab das ers mit einer foreach schleife gamcht da kamm beim speichern von merh als 2 beiträgen immer die fehlermeldung von VS "in zeil ... wurde kein eintrag gefunden" und er bricht ab nun hab ich es eben mit einer normalen for schleife lösen wollen aber jetzt geschieht eben das oben beschriebene
so hier mal der codeschnipsel der speicherprozedur (kann das auch an was anderem liegen als an der speicherprozedur???)
StreamWriter sw = new
StreamWriter(".\\textdatei.txt",false);
dataView1.RowFilter = "Export = 0";
System.Data.DataRowView DRV;
for ( int I=0; I < dataView1.Count; I++ )
{
DRV = null;
DRV = dataView1[I];
if ( DRV != null )
{
sw.Write (DRV["Nummer"].ToString());
sw.Write (DRV["Tag"].ToString());
sw.Write (DRV["Datum"].ToString() +";");
sw.Write (DRV["Veranstalltungsname"].ToString() +";");
sw.Write (DRV["Ort"].ToString() +";");
sw.Write (DRV["Extras"].ToString() +";");
sw.Write (DRV["Eintritt"].ToString() +";");
sw.Write (DRV["Veranstallter"].ToString() +";");
sw.Write (DRV["Art1"].ToString() +";");
sw.Write (DRV["Art2"].ToString() + ";");
sw.Write (DRV["Landkreis"].ToString() +";");
sw.Write (DRV["Bezirk"].ToString() +";");
sw.Write (DRV["Zahl"].ToString());
sw.Write (DRV["Musik"].ToString() + ";");
sw.Write (DRV["Benutzername"].ToString());
sw.Write (DRV["Hyperlink"].ToString() + ";");
sw.Write (DRV["Status"].ToString());
sw.Write (DRV["TopEvent"].ToString() + ";");
sw.Write (DRV["Ansprechpartner"].ToString() + ";");
sw.Write (DRV["Name"].ToString());
sw.Write (DRV["Email"].ToString() + ";");
sw.WriteLine (DRV["Telefon"].ToString() + ";");
DRV [ "Export" ] = "1";
}
}
dataView1.RowFilter = "";
sw.Close();
}
thx for help
Jover schrieb:
In C# gibt es keinen Präprozessor (also auch kein #define).
Natürlich gibt es in C# ein define, nur hat es nicht denselben Zweck wie ein C++ define.
#define TRAIL
#if TRAIL
Console.WriteLine("Das wird in der Trainigsverion kompiliert.")
#endif
Console.WriteLine("Das wird in allen Verionen kompiliert.")
Meiner Meinung nach ist das Buch "Windows Programmierung mit Visual C#" von Charles Petzold eines der schlechtesten Bücher die ich bisher zu C# in der Hand hatte aber das ist Geschmackssache. Wenns sehr ins Detail gehen soll findet man da zwar mehr als in anderen aber der schreibstill und die Erklärungen sind nicht das meine.
Ich persönlich bin von dem Buch "Visual C# Grundlagen, Programiertechniken, Windows-Programmierung" von Frank Eller und Michael Kofler total begeistert. Wenn dir das was hilft unter http://www.addison-wesley.de findet man ne Leseprobe
Ja habe ich überprüft, ich habe ja an der Db nichts geändert. Un vorher ist sie auch gegangen.
Das ist der SQl String
SELECT Main.Name, Languages.Language, [OperatingSys].OperatingSystem, Main.Applications, Main.AdditionalInfo, Main.Link "+
"FROM OperatingSys INNER JOIN (Languages INNER JOIN Main ON Languages.ID_Language=Main.Language) ON [OperatingSys].ID_OperatingSystem=Main.OperatingSystem "+
"WHERE (((Languages.Language)='German') And (([OperatingSys].OperatingSystem)='Windows 98') And ((Main.Applications) Like '%SQL Server 2000%'))";
Hi die sind schon drin, hat VS selber reingemacht, aber es hat sich erledigt, da ich das ganze jetzt in einer sehr coolen Engine programmiere. Und da läuft es flüssig ^^
Hallo
ich möchte eine c++ Bibliothek in einem c# Projekt benutzen. Die Bibliothek wird über mehrere makefiles kompliliert. Kann ich das so umschreiben, dass ich eine .NET-Dll erhalte? Oder geht das sogar übers Studio?
Benutzt wird nmake.
Danke un Gruss
smirre
Ich würde gerne eine einfache Tabellenansicht in C# erstellen, bei der ich eine Menge Daten manuell(per Quellcode) anzeigen lassen, verändern, löschen und hinzufügen kann.
Meine Daten habe ich in einer MySQL-Datenbank, welche ich dann über ODBC einlesen kann.
Ist ja nicht so, als würde ich noch nichts versucht haben aber ListView und DataGrid haben immer irgendwelche Eigenschaften, die ich nicht verändern, abfragen oder abfangen kann und das nervt mich gewaltig.
Es würde eine Strukur wie eine Excel-Tabelle aussuchen, wo man eben nur bestimmt Zellen verändern kann.
Wie gesagt bei ListView hab' ich schon Eingabefelder für die SubItems erstell jedoch bekommt man von ListView keine Angaben über die Position der Tabelle und wohin sich bestimmte Spalten verschoben haben.
Mal abgesehen, dass das einlesen der Daten über ein DataSet relativ nervig ist und man für die ganzen angelegten Tabellen und Spalten wieder neue ColumnStyles für das DataGrid erstellen muß, weiß ich dort nicht, wie man die "Hinzufügen von Daten"-Felder deaktivieren kann bzw. abfragen kann. Genauso weiß ich nicht, wie man die Spalten verschieben kann.
Über den Datenbank-Assistenten lassen sich die MySQL-Daten nur schwer abfragen bzw. versteh ich nicht wie man sie dann ändern kann.
Wie macht ihr das mit euren Daten? Erstellt ihr selber eine Tabelle, z.B. mit Label's bzw. TextBox'es?
Oder gehe ich an die Sache falsch ran!?
Ich bedanke mich schonmal für eure Hilfe!
das folgende Beispiel bewegt den Mauscursor von den oberen linken Ecke zu der unteren rechten.
using System.Runtime.InteropServices;
....
private void button1_Click_2(object sender, System.EventArgs e)
{
for (int i = 0; i <= 65535; i++)
{
mouse_event(1 /* MOUSEEVENTF_MOVE */ | 32768 /* MOUSEEVENTF_ABSOLUTE */, i, i, 0, 0);
}
}
[DllImport("user32.dll")]
private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
mehr Informationen in der Win32 SDK Hilfe zu mouse_event()
int ist ein shorthand fuer system.int32, damit also ein objekt. das kann ich in einer object return type methode einfach zurueck geben ohne zu casten. fuer int[] (= System.int32[]) geht es nicht, habe aber inzwischen auch rausbekommen, dass es mir eh nix bringt, da ich mit dem ergebnis der methode type.invokemember(..., object[] arguments) aufrufen wollte, was natuerlich nicht geht wenn arguments ein int[] ist.
Die Zeichenanzahl kannst Du über die MaxLength Eigenschaft einstellen. Damit nur Zahlen von 1 - 5 erlaubt sind hilft folgendes.
if("12345".IndexOf(e.KeyChar.ToString()) < 0)
{
e.Handled = true;
}
[Edit] Der Code muss in das KeyPress Ereignis der TextBox.
Hi,
die Fehlermeldung hatte ich noch nicht. Aber ich versuch mal zu helfen.
hast du auf den Clients ein Channel aufgemacht ? Der Server muss ja mit den Clients kommunizieren . Das geht aber nur, wenn der Client über ein Channel erreichbar ist. Natürlich muss da auch eine eventuelle Firewall mitspielen.
Poste mal die Codezeilen, welche eine Verbindung mit dem Server aufbauen oder die
Konfigurationsdateien.
Ein anderer Grund könnte sein, dass due ein Object übergibst, welches vom Client zum Server übergeben wird. Diese Objecte werden als Referenz übergeben. Dazu muss in version 1.1 der Typfilter auf Full gesetzt werden:
// auf dem RemotingServer oder auf Client, wenn Server mit CLient kommuniziert
BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
provider.TypeFilterLevel = TypeFilterLevel.Full;
IDictionary ports = new Hashtable();
ports["port"] = 3001;
TcpChannel chan = new TcpChannel(ports, null, provider);
// Channel Regristrieren