Hi
weis jemand wie man bestimmte bereiche aus einem Excelsheet in ein DataSet bekommt? Im Moment mache ich das so(siehe Code), allerdings werden mir hier alle daten aus einem definieren Bereich ausgegeben(sieh SQL String). Kann ich das auch so machen das ich sage:"Nimm alles von A1 bis A5 und E1 bis E5", wenn das geht wie baue ich dann den SQL string?
Hier mein Code
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
@"Data Source=d:\test.xls;Extended Properties=Excel 8.0");
OleDbDataAdapter da = new OleDbDataAdapter("Select * from rangliste",con);
DataSet ds = new DataSet();
try{
con.Open();
da.Fill(ds);
}
finally
{
con.Close();
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
}
}
Hi weiß´jemand ob es eine Möglichkeit gibt mir nicht nur einenm ToolTip für ein Steurelement anzeigen zulassen sondenr auch für die Elemente eines ListViews?
Oder kennt jemand noch ne elegantere Method´???
(Wenn möglich in die Richtung c#)
Hallo ich hab meine Probleme mit TcpListener und Multithreading.
Ich will ein Programm in C# schreiben das als Server arbeitet und mit dem TcpListener auf eingehende Verbindungen wartet, dabei soll man ja mehr als eine Verbindung auf ein Port machen können. Ich krieg aber immer eine Socket Fehlermeldung:
"Ein Socketvorgang konnte nicht ausgeführt werden, da dem System Pufferspeicher fehlte oder eine Warteschlange voll war."
Hier ist der Code: So siehts ungefähr aus. Um zu sehen wie ich das mit dem Multithreading gemacht habe:
public class TcpServer
{
private Socket tcpRohr;
private void start()
{
try
{
TcpListener listener = new TcpListener(IPAddress.Loopback, this.port);
listener.Start();
while(true)
{
if(currentUser < maxUser)
{
// Accept blocks until a client connects
TcpServer tcpServer = new TcpServer(port, maxUser);
tcpServer.tcpRohr = listener.AcceptSocket();
socketAus = false;
// Process the client connection on a new thread
Thread threads = new Thread(new ThreadStart(tcpServer.datenVerkehr));
threads.Start();
currentUser += 1;
}
}
}
catch( SocketException socketEx )
{
MessageBox.Show("Fehler Listener: "+socketEx.Message,"Socket Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
Also wie gesagt, funktioniert das nicht. Wie muss ich denn generell den TcpListener laufen lassen damit ich mehrere Verbindungen behandeln kann. Bekanntlich ist ja Multithreading die einzige Lösung um an einem Port mehrere eingehende Verbindungen zu bekommen.
Nicht so ohne weiteres. Da C++ leider keinen einheitlichen Mechanismus/Format bietet, Klassen für andere Programmiersprachen zu exportieren sind. Leider kocht da jeder Komilerhersteller sein eigenes Süppchen.
Du kannst eine puren C Wrapper schreiben der deine Klassen kapselt. Und dann mit pinvoke importieren. Ist aber recht umständlich. Außer du schreibst ein Programm das diese Wrapper automatisch generiert.
Eine bessere Möglichkeit ist deine C++ Klassen im Managed C++ zu kompilieren. MS hat die Komandozeilenversion von MS C++ 7.0 zum Download frei gegeben. Deinen Code musst du allerdings anpassen, dafür aber sollte es dann möglich sein, deine auf managed getrimmte Klasse ohne Probleme in einzubinden.
Grundsätzlich kann ge"jit"teter Code (theoretisch) genau so schnell sein wie nativer, wenn man mal von einer kleinen Verzögerung am Anfang absieht. Das hat ja interpreter schon gesagt.
Eine .net Anwendung läuft nur mit dem Framework zusammen. Es reicht ja nicht aus einfach von IL nach x68 zu konvertieren. Deine Anwendung ist auf Assemblies im GAC angewiesen. Du kannst nur auf zukünftige Versionen von Windows hoffen, wo das Framework standardmäßig mitgelifert wird (Ist bei Longhorn ja der fall) oder du musst deinen User auffordern es zu installieren.
Letzteres ist sowiso ratsam, da immer mehr Anwendungen auf .net basieren werden. Selbst das neue Treiberpaket von ATI setzt schon eine .net Framework Installation vorraus.
hi mal wieder,
und auch gleich entschuldigung dass ich so lange nicht geantwortet habe aber dazu war die zeit im moment zu knapp
ich benutze zum (ent)packen die #ziplib von ic#code. die gibts hier:
http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx
viel spass damit
velgreyer schrieb:
Ich hab
using System;
using System.Windows.Forms;
using System.Drawing;
Aber ToString("X") funktioniert Vielen Dank
Grüße, vel
K.
Ich glaube es lag daran, dass es die Klasse Integer garnicht gibt
Wenn du es unbedingt so machen möchtest könntest du in ein temporäres Objekt deserialisieren und dann die Werte des temporären Objekts deinen Objekt zuweisen, aber für so ne Art ist es sicherlich besser mit dem ISerializable Interface zu arbeiten da du so im Konstruktor dierekt auf die verschiedenen Werte zugreifen kannst, und du nicht den Umweg über ein temporäres Objekt gehen musst.
net schrieb:
wenn du es nicht von hand machen willst: sharpdevelop kann das automatisch
Und wenn Du den nicht installieren willst, dann kann es auch diese Seite.
Kann sein das der Code fehlerhaft ist - ich habe in von vb.net Code hergeleitet*.....naja ... ich habe den Code ja gepostet
* d.h. SharpDevelop hat vb.net Code in C# Code umgewandelt
Hi,
Ja aber ich muss zeilenweise lesen. BufferedStream bietet nur Read oder ReadBytes an. Es gibt keine Methoden die mir einfach eine Zeile aus der Datei als String liefert, so wie es StreamReader macht. :-)Weisst was ich
wer sagt, dass man ein StreamReader nciht an ein BufferedStream anbinden kann
public static void BufferedStream()
{
FileStream f=new FileStream("C:\\test.txt",FileMode.Open);
BufferedStream b=new BufferedStream(f);
StreamReader reader= new StreamReader(b,1000);
System.Collections.Specialized.StringCollection testarray=new System.Collections.Specialized.StringCollection();
do
{
string temp=reader.ReadLine();
if(temp==null)break;
testarray.Add(temp);
}
while(true);
f.Close();
}
ja scheint so. es wird immer der erste imagebutton auf der seite beim enter-dürcken ausgeführt. Da er zu beginn wohl selektiert ist. gibts keine möglichkeit den inaktiv zu stellen?
in einem anderen forum wurde mir gesagt das sei ein bug vom .Net Framework
und wird erst mit der nächsten version behoben.
gruss
cpt.oneeye