Autor Beitrag
ShadowKnight
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 21



BeitragVerfasst: Mo 03.08.09 00:14 
Hallo, ich möchte eine Verbindung zu einem FTP-Server herstellen und eine Datei hochladen. Dies klappt, wenn ich bei der Credentials Eigenschaft des requests den Username und das Passwort direkt zuweise, nicht aber wenn ich es mit Convert.ToString(txtUsername)... aus einer Textbox herausnehme.
Woran liegt das? Ich meine String ist String und die Verbindung funktioniert ja...

Hier der Code:


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://.../test.txt"));

            request.Method = WebRequestMethods.Ftp.UploadFile;
            request.Credentials = new NetworkCredential(txtUsername.ToString(), txtPassword.ToString()); //Geht nicht
          //request.Credentials = new NetworkCredential("USERNAME", "PASSWORT"); <---- Würde gehen!
            request.UsePassive = true;
            request.UseBinary = true;
            request.KeepAlive = false;

            //Load the file
            FileStream stream = File.OpenRead("test.txt");
            byte[] buffer = new byte[stream.Length];

            stream.Read(buffer, 0, buffer.Length);
            stream.Close();

            //Upload file
            Stream reqStream = request.GetRequestStream();
            reqStream.Write(buffer, 0, buffer.Length);
            reqStream.Close();
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 03.08.09 08:59 
Hallo und :welcome:

ich habe noch nie ausprobiert, was TextBox.ToString() macht; vielleicht kommt dabei etwas wie "System.Windows.Forms.TextBox" heraus. Du solltest auf jeden Fall den Inhalt der TextBox abfragen, denn den willst du ja haben; und das geht mit der Text-Eigenschaft direkt (und das ist schließlich ein String).

Merke: ToString und Convert sollten nur mit großer Zurückhaltung benutzt werden. Meistens gibt es bessere Wege.

Gruß Jürgen
ShadowKnight Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 21



BeitragVerfasst: Mo 03.08.09 14:05 
ToString gibt bei einer Textbox den Inhalt als String zurück. Habe es wiegesagt auch schon per Convert versucht und auch mit MessageBox ausgegeben. Die Daten waren vollkommen richtig. Was meinst du für andere Wege?

Mfg ShadowKnight
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 03.08.09 14:38 
user profile iconShadowKnight hat folgendes geschrieben Zum zitierten Posting springen:
ToString gibt bei einer Textbox den Inhalt als String zurück.

Dann habe ich keine Erklärung, warum es nicht klappen sollte. Ich hatte es so gemeint:
ausblenden C#-Quelltext
1:
request.Credentials = new NetworkCredential(txtUsername.Text, txtPassword.Text);					


user profile iconShadowKnight hat folgendes geschrieben Zum zitierten Posting springen:
Was meinst du für andere Wege?

Das war nur vorsorglich gemeint. Beispielsweise ist Convert.ToDouble nicht so gut, double.Parse/TryParse sind viel besser geeignet.

Jürgen
ShadowKnight Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 21



BeitragVerfasst: Mo 03.08.09 17:34 
Danke, nun funktioniert es. Habs total durcheinander gebracht...
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 03.08.09 18:01 
Hallo ShadowKnight,

was JüTho meinte mit der ToString()-Methode ist (Vgl. msdn.microsoft.com/d...tbox.tostring.aspx):

ToString()()() Gibt einen String zurück, der den aktuellen Object darstellt. (Von Object geerbt.)

Und das ist eben
Zitat:
ich habe noch nie ausprobiert, was TextBox.ToString() macht; vielleicht kommt dabei etwas wie "System.Windows.Forms.TextBox" heraus.


?this.textBox1.ToString()
"System.Windows.Forms.TextBox, Text: "

Deshalb nehm den Ratschlag von Jürgen an und lasse ToString sein.

Gruß Daniel