Laden...
A
arnoe myCSharp.de - Member
FIAE (1/3) Ostfriesland Dabei seit 20.12.2010 18 Beiträge
Benutzerbeschreibung

Forenbeiträge von arnoe Ingesamt 18 Beiträge

13.06.2012 - 16:09 Uhr

Hallo.
Ich bin gerade dabei eine Silverlightanwendung(im Browser) zu schreiben mit der ich auf einen WebService zugreife. Der WebService ist per http erreichbar und gibt xml zurück. Wenn ich nun versuche mit einem asynchronen httpwebrequest Aufruf mit_ .BeginGetResponse(OnGetResponse, req);_ ein Ergebnis zu bekommen, bekomme ich nichts zurück. Die Url wird an den WebService geschickt und steht auch im protokoll im IIS (7.5). Eine clientaccesspolicy.xml habe ich auch schon erstellt und auf den server geladen.
Desweiteren funktioniert der Code genauso in WinForms. Hab das mal getestet um sicherzugehen das der WebService auch antwortet.
Hier mal mein Code, vielleicht findet jemand einen Fehler:


private void DoWebService() 
        {
            try
            {
                string mUrlString = "";

                mUrlString += "http://localhost:82";  
                mUrlString += "/DataService.svc";
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(mUrlString);
                req.BeginGetResponse(OnGetResponse, req);
            }
            catch (Exception e1){}
        }

        private void OnGetResponse(IAsyncResult iar)
        {
            //wird in Silverlight nie aufgerufen
            MessageBox.Show("Antwort");
            try
            {
                HttpWebRequest req = iar.AsyncState as HttpWebRequest;
                HttpWebResponse response = (HttpWebResponse)req.EndGetResponse(iar);

                using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream()))
                {
                    string resultString = streamReader1.ReadToEnd();
                    XDocument mDoc = new XDocument();

                    mDoc = XDocument.Parse(resultString);
                    XElement root = mDoc.Root;
                    foreach (XNode node in root.Nodes())
                    {
                        MessageBox.Show(node.ToString());
                    }
                }
            }
            catch (Exception e1){ }
        }

mfg Arne

13.07.2011 - 14:24 Uhr

verwendetes Datenbanksystem: <MS SQL 2008 R2>

Hallo, ich bin gerade dabei Foreign Key's in meine DB einzubauen und bin nun auf folgendes Problem gestoßen.
Wenn ich einen Foreign Key für die Tabelle Auto anlegen möchte macht man es, denke ich nomralerweise so:


ALTER TABLE dbo.Auto WITH CHECK
ADD CONSTRAINT FK_Auto_Motoren FOREIGN KEY
(Mandant, Betreiber, Einrichtung, Motor)
REFERENCES dbo.Motoren
(Mandant, Betreiber, Einrichtung, ID )

Die Tabellen sind wie folgt aufgebaut

dbo.Auto
AnlageDatum DateTime
Mandant Int PS
Betreiber Int PS
Einrichtung Int PS
Nr Int PS
Motor VarChar(3) (zukünftiger FK)

dbo.Motoren
AnlageDatum DateTime
Mandant Int PS
Betreiber Int PS
Einrichtung Int PS
ID VarChar(3) PS
Bezeichnung VarChar(50)

Befüllt sind die Tabellen aber mit Werten.
dbo.Auto
Anlage Datum | Mandant | Betreiber | Einrichtung | Nr | Motor
2011-07-17 |----1----- |----- 1 ---- | ----- 0 ----- |- 5 -|-- v6
dbo.Auto
AnlageDatum | Mandant | Betreiber | Einrichtung | ID | Bezeichnung
2011-07-17 |---- 1----- |---- 0 ----- |----- 0 -------|-- v6 | großer Moto

Nun zu meinem problem, da der betreiber im Foreign Key unterschiedlich sein kann (das ist gewollt) kann ich keinen solchen Foreign Key anlegen, gibt es vielleich eine Ausnahme die man definieren kann oder etwas ähnliches um evtl bei Betreiber eine 0 zuzulassen?

MFG Arne

07.04.2011 - 15:48 Uhr

hallo MarsSein,
danke für den hinweis, da ist wohl was durcheinandergekommen 😦.
Da ich für den tcp listener keine Methode oder Funktion zum empfangen gefunden habe, hab ich es mit dem tcp client versucht (auf Serverseite).
Ich hab mir auch schonmal die Methode tcp.Server.BeginReceiveFrom(...) angeguckt aber da gibt es soviele Parameter, die ich nicht füllen kann.
Hoffe trotz des durcheinander gewürfelten Quellcodes, das jemand versteht was mein Problem ist^^
mfg Arne

*edit* TcpClient tcp2 = new TcpClient(); hätte ich fast vergessen

07.04.2011 - 15:18 Uhr

Hallo.
Ich bin bereits seit ~ drei Tagen dabei mich mit dem Theme Netzwerken ( tcp&sockets) in C# zu beschäftigen. In C# bin ich hier zwar ein Neuling, jedoch kenne ich die Grundlagen von tcp & ip ( danke cisco ccna 👍).
Heute habe ich das erste mal, nachdem ich mich die letzten Tage mit der Theorie befasst habe , angefangen eine client - server Anwendung zu schreiben. Beide sind eigene Anwendungen.
Nun zu meiner Frage / Problem.
Dies ist die Client.exe hier habe ich bisher kein Problem. Denke mir aber das es besser ist diesen Teil hier mitzuposten.


try
{
	bool bContinue = true;
	while (bContinue)
	{
	   try
	   {
		   System.Net.Sockets.TcpClient tcp = new System.Net.Sockets.TcpClient();
		   tcp.Connect(hostname, Port);   //Zeile 150

		      string sMessage = getraenk + "," + zutat1 + "," + zutat2; 
		      System.Text.Encoding ASCII = System.Text.Encoding.ASCII;
		      Byte[] mybytes = ASCII.GetBytes(sMessage.ToCharArray());
		      tcp.Client.Send(mybytes);
	   }
	   catch(Exception e)
	   {
	      bContinue = false;
	      MessageBox.Show(e.Message + "\n" + e.StackTrace.ToString());
	   }
	}
}
catch (Exception e)
{
	MessageBox.Show(e.Message + "\n" + e.StackTrace.ToString());
}

Mein problem liegt hier in der Server.exe:
Der Vorgang ist für nicht verbundene Sockets unzulässig. Bei Zeile 53.


try
{
	tcp = new TcpListener(10001);
	tcp.Start();
	bool bContinue = true;

	int bytes = 0;
	int readbytes = 0;
	Byte[] read = new Byte[500];

	while (bContinue)
	{
		try
		{
			System.Net.Sockets.Socket s = tcp.AcceptSocket();
			if (s != null)
			{
				System.IO.Stream s1 = tcp2.GetStream();  //Zeile 53

				bytes = s1.Read(read, readbytes, read.Length);
			}
		}
		catch (Exception e)
		{
			MessageBox.Show(e.Message + "\n" + e.StackTrace.ToString());
		}
	}
}
catch (Exception e)
{
	MessageBox.Show(e.Message + "\n" + e.StackTrace.ToString());
}

Den Quellcode habe ich mir aus verschiedenen Beispielen zusammengebaut und teils aus Büchern genommen. Aber ich find einfach nicht den Fehler woran es liegt.
Vielleich kann mir hier jemand weiterhelfen
mfg Arne

18.02.2011 - 10:43 Uhr

Hallo Herbivore,
ich habe vergessen zu erwähnen wo er die Exception wirft, nämlich in der img.save zeile. Das mit GetBuffer habe ich nun umgeschrieben.
mfg Arne

18.02.2011 - 10:17 Uhr

Hallo,
ich hab gerade überlegt einen Thread für meine Frage aufzumachen, dann aber diesen gesehen.
Ich habe das Problem das, wenn ich ein Image aus einem flexgrid in ein bytearray umwandeln möchte immer eine Exception kommt die folgendermaßen aussieht.> Fehlermeldung:

Allgemeiner Fehler in GDI+

Ich habe schon es mit dem Memory Stream, dem File Stream und dem Image Converter ausprobiert und es kam immer wieder der Fehler.
Das Image bekomme und wandel ich um mit folgendem Code:

 Image img;
img = grBildGrid.GetCellImage(irow, 13);
Stream stream = new MemoryStream();
img.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, (int)stream.Length);
stream.Close();

Ich hoffe das mir jemand helfen kann. In der Anleitung zum c1flexgrid steht das die rückgabe von .GetCellImage eindeutig ein Image ist.
mfg Arne

10.02.2011 - 16:14 Uhr

Hallo Nemcija,
das mit dem GarbageCollector war ein tropfen auf dem heißen Stein, 10 Mb hat mir das gebracht aber trotzdem danke für den Vorschlag, es ist immer gut zu wissen das man den wie du schon sagtest selber anstoßen kann.
hier ist eine Zeile wie ich ein Bild in das Grid einbinde.


grBildGrid.SetCellImage(iRow, (14 + i - 1), Image.FromFile(filename));

@winSharp93 , danke ich werd mich mal nach den Thumbnails informieren, muss dafür ein eigenes Feld in einer Tabelle angelegt werden?

Mfg Arne

10.02.2011 - 15:51 Uhr

Hallo,
ich habe schon die Suchfunktion im Forum benutzt, sowie bei google gesucht aber nichts gefunden was mir weiterhelfen könnte.
Ich habe ein (c1)flexgrid auf dem Texte und Bilder angezeigt werden können.
Es ist möglich und Sinn und Zweck der Anwendung Bilder per Drag & Drop in das Grid zu ziehen und diese dann beim klicken eines Buttons in eine SQL-Datenbank hochzuladen. Wenn ich nun ca 20 Bilder in meinem Grid habe liegt der verbrauch des Arbeitsspeichers von diesem Programm bei ca 100 Mb und eigentlich sollte man bis zu 600 Bilder abspeichern können.
Daher meine Frage, ist es möglich eine Vorschau von einem Bild zu bekommen oder den Speicherverbrauch zu verringern?
Eigentlich wird ja nur der Pfad des Bildes in das nächste Feld des Grids abgelegt und dem vorigen Feld wird der Pfad als Image zugewiesen
Desweiteren besteht das Problem auch wenn ich die Bilder aus der Datenbank lade.
MFG Arne

20.01.2011 - 14:38 Uhr

Hallo zerberos,
wenn du auf dein Gridview im Designer klickst und dann auf Eigenschaften gehst sollte da der Punkt ContextMenuStrip stehen. Bei mir hab ich zwar nichts zur Auswahl drin stehen aber ich hab auch kein Gridview sondern nur andere "View`s"
mfg Arnoe

20.01.2011 - 11:14 Uhr

Hallo inflames2k,
wenn du im Designer dein listview anklickst müsste rechts unter Eigenschaften (nach unten scrollen) "Scrollable" stehen. Dieses auf false stellen. Wenn das nicht weiterhilft weiß ich auch nicht weiter 🙁
mfg Arnoe

07.01.2011 - 11:10 Uhr

Danke für die schnelle Antwort.
Ich habe gerade das Tool "Rad Software Regular Expression Designer" gefunden, das hat mich schon um einiges weitergebracht. Denn jetzt verstehe ich auch erst wirklich wie das alles funktioniert. Nun hab ich deinen Ausdruck in dem Programm eingegeben und den kompletten Quelltext. Das Ergebnis ist, das er das alles findet wie ich es haben will 👍 in meinem C# Programm jedoch liefert er nur die letzten Werte der "Gruppe". Ich hab auch schon geguckt ob es eine Möglichkeit gibt den ersten oder zweiten Wert auszulesen, jedoch erfolglos.
Die Ausgabe lautet immernoch

m.Groups["Key"].Value + "=" + m.Groups["Value"].Value + " ";

Mfg arnoe

07.01.2011 - 08:52 Uhr

Hallo m0rius,
mit dem Code aus meinem Anfangspost bekomme ich die daten für die Buttons aus dem Quelltext holt: <input type="submit" name="submit" value="Einloggen" class="button"> Die Ausgabe dieses Codes lautet submit=Einloggen" class="button | submit=Jetzt suchen" class="button |
Nun will ich aber einen zweiten, ich will mal sagen "Filter" haben der mir die Variablen für: _<input type="text" name="login" class="formular" _ ausgibt, die Ausgabe sollte in etwa so aussehen : ** text=login class=formular** wobei das login nicht unbedingt login sein muss sondern nur das formular festgelegt ist.
Und dafür muss man denk ich die "Jokerzeichen" wie .*? anders setzen aber da hab ich wie gesagt noch nichts vernünftiges im Internet gefunden
Mfg arnoe

06.01.2011 - 15:47 Uhr

Hallo m0rius,
danke für den Hinweis.
Zum Verständnis -
Ich möchte in dem String strPage(mehrere hundert Zeilen groß) suchen ob der String strRegExPatten darin irgendwo vorkommt und wie die Variablen heißen, also die Teile des Strings die ich nicht kenne und wofür das / die Jokerzeichen gebraucht werden.
Ich hoffe das es nun etwas besser nachzuvollziehen ist, was mein Problem ist. 😃
Mfg Arnoe

06.01.2011 - 15:23 Uhr

Hallo,
ich habe folgendes Problem, nämlich möchte ich den input type, den Namen, sowie den Namen der class von einem Formular auf einer HTML oder PHP seite herausbekommen.
Dafür durchsuche ich den Quelltext, den ich vorher mit einer anderen Methode heruntergeladen habe mittels folgendem Code (habe ich nicht selber geschrieben):


string strRegExPatten = "<\\s*input.*?name\\s*=\\s*\";(?<Name>.*?)\".*?value\\s*=\\s*\";(?<Value>.*?)\".*?>";
Regex reg = new Regex(strRegExPatten, RegexOptions.Multiline);
MatchCollection mc = reg.Matches(strPage);
string strTemp = "";
foreach (Match m in mc)
{
strTemp = strTemp + m.Groups["Name"].Value + "=" + m.Groups["name1"].Value + " ";
strTemp += " | ";
}

Das was in "strRegExPatten" steht funktioniert und liefert die Infos vom Submit Button, jedoch brauche ich die Infos vom Usernamen- und Passwortformular aus dem Quelltext.
Diese sehen folgendermaßen aus:
<input type="text" name="???" class="formular" ...>
Jedoch weiß ich nicht wie man das mit den "Jokerzeichen" schreibt wie oben.

Ich wäre für jeden Tipp dankbar, habe schon den ganzen Vormittag im Internet gesucht 😦
Mfg Arnoe

22.12.2010 - 09:52 Uhr

Hallo MarsStein,

ich deinen Vorschlag mit stream.Position = 0; habe ich versucht.
Dies hat jedoch leider nicht geklappt. Als ich jedoch auf deinen Hinweis mir noch einmal das ByteArray angeschaut habe hab ich festgestellt das es immer so groß ist wie die größe die ich beim hochladen des Bildes im Präpariertem Statement angebe. Hier einmal die Codezeile:


updateCommand.Parameters.Add("@Bild", System.Data.SqlDbType.Image, 500);

Wenn ich jedoch die Größe weglasse bekomme ich eine Exception wenn das Präparierte Statement "zusammengebaut" wird.
Die Länge von Image muss definiert sein...
Das mit dem überschreiben macht nichts, ich habe um den gesamten code eine for Schleife. Desweiteren sind im Reader nur 3 teile drin, ein Bild, und zwei Strings (VarChar's).
Ich hatte es schon mit einem Bild geschafft, dass ich dieses aus der DB ziehen und als Image umwandeln konnte.
Jedoch funktioniert dies nicht mehr, darum hier mein post 😦
Mfg Arnoe

*edit* Ich hab das Problem gefunden, die Größe des Images beim hochladen war viel zu klein. Ich hab erst ein Bild in Hex-Zahlen anzeigen lassen und dann die "Zahlen" gezählt, die Anzahl dann als Image-Größe angegeben und schon ging's. Die Exception mit "Ungültiger Parameter" kommt aber weiterhin.

21.12.2010 - 16:57 Uhr

Hallo,
kaum ist das erste Problem mit dem FlexGrid gelöst macht der MemoryStream Probleme. Zur Erklärung mein Programm soll für jede Reihe ein Bild und einen Pfad (VarChar) aus einer SQL - Datenbank laden.
Die Exception die in der Zeile "//Fehler" geschmissen wird lautet wie folgt:

Ungültiger Parameter.
bei System.Drawing.Image.FromStream(Stream stream)
useEmbeddedColorManagement, Boolean validateImageData)
bei System.Drawing.Image.FromStream(Stream stream)
C:...\mainfenster.cs:Zeile 263.


byte[] bParams = new byte[1];

while (myReader.Read())
{
bParams = (byte[])myReader["Bild"];
pfad = Convert.ToString(myReader["Pfad"]);
name = Convert.ToString(myReader["Name"]);
}

myReader.Close();

MemoryStream stream = new MemoryStream();

stream.Write(bParams, 0, bParams.Length);

/*Fehler*/ c1FlexGrid1.SetCellImage(i, 1, Image.FromStream(stream));

c1FlexGrid1[i, 2] = pfad;
//stream.Close();

20.12.2010 - 13:05 Uhr

Vielen Danke JAck30lena,
ich werde gleich mal gucken ob es so eine oder eine ähnliche Methode gibt.
Das c1FlexGrid sieht in etwas so aus wie ein datagridview.
*edit*
Ich hab das Problem gelöst. die HitTest - Methode hat super geholfen, danke 😃
Mfg Arnoe

20.12.2010 - 12:57 Uhr

Hallo,
ich möchte eine Bilddatei (jpg oder bmp) auf mein (c1)FlexGrid ziehen sodass das Bild in der Reihe und Spalte angezeigt wird wo es raufgezogen wird.
Das Anzeigen des Bildes habe ich schon hinbekommen, wenn ich es auf die Form ziehe nur das mit dem ziehen auf das (c1)FlexGrid1 bereitet mir arge Probleme.
Theoretisch hab ich eine Idee wie soetwas realisiert werden könnte.

  • Während die Maus losgelassen wird die Reihe und Spalte des (c1)FlexGrid abfragen. Leider weiß ich nicht wie man soetwas bewerkstelligen kann.
    Vielleicht kann mir jemand von euch helfen auf den richtigen Weg zu kommen. Ich hab nämlich schon allemöglichen Seiten abgesucht und nur 2 Beispiele gefunden die mir nichts gebracht haben, da der Code so unleserlich war oder in VB geschrieben wurde.
    Mfg Arnoe