SOS προβλημα με asp.net web forms

Πληροφορίες σχετικές με την ASP, ASP.NET και με τις εφαρμογές που είναι γραμμένες με αυτήν.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
vraditis
Δημοσιεύσεις: 8
Εγγραφή: 15 Μάιος 2005 15:23

SOS προβλημα με asp.net web forms

Δημοσίευση από vraditis » 27 Ιουν 2006 03:40

Θα το πω οσο πιο αναλυτικα γινεται :
Φτιαχνω μια web application.
Αποτελειται απο τη σελιδα "page1 " οπου ο χρηστης καλειται να συμπληρώσει καποια textboxes .Στην ιδια σελιδα υπαρχει και ενα button ,οπου το παταει ο χρηστης αφου συμπληρωσει τις παραμετρους.
Το button μεσα ,περιεχει μια Server.Transfer("page2.aspx") εντολή ,οποτε η page2 καλειται με σκοπο να επεξεργαστει τα στοιχεια που εβαλε ο χρηστης στην page1.
Τα στοιχεια του χρηστη τα μετεφερα στην page2 με εντολες τυπου Request.Form["param1"].

Ολα καλα μεχρι εδω.
Το προβλημα ειναι εδω: στην page2 εχω ενα button οπου οταν το πατησει ο χρηστης,
να τον παει στην page3 με την εντολη Server.Transfer("page3.aspx").Τοτε εμφανιζεται το λαθος και δε μπορει να καλεσει τη page3 !!

Υποπτευομαι οτι κατι παιζει με τις Server.Tranfer εντολες .Εχει κανεις καμια ιδεα πως να λυσω το προβλημα??

Ευχαριστω

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

SOS προβλημα με asp.net web forms

Δημοσίευση από cherouvim » 27 Ιουν 2006 08:38

Harise mas ligo apo to kodika sou.

Megistos
Δημοσιεύσεις: 149
Εγγραφή: 14 Ιουν 2005 15:38

SOS προβλημα με asp.net web forms

Δημοσίευση από Megistos » 27 Ιουν 2006 13:48

Ναι γιατι Server.Transfer και Request.Form με asp.net λίγο κάπως... Έχει πολύ πιο απλούς τρόπους.
The Flame Still Burns

vraditis
Δημοσιεύσεις: 8
Εγγραφή: 15 Μάιος 2005 15:23

SOS προβλημα με asp.net web forms

Δημοσίευση από vraditis » 27 Ιουν 2006 14:05

Δε χρησιμοποιησα Response.Redirect γιατι εχω να μεταφερω περιπου 20 παραμετρους στην page2.
Ο κωδικας στην page1 ειναι καπως ετσι:

public class Search : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList lstStartingFrom2;
protected System.Web.UI.WebControls.TextBox txtDepartureDate2;
protected System.Web.UI.WebControls.DropDownList lstDestination2;

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}
private void btnSearch_Click(object sender, System.EventArgs e)
{
Server.Transfer("page2.aspx");
}
}

Ο κωδικας στην page2 ,οπου επεξεργαζεται τα στοιχεια της page1 ειναι :

public class SearchResults : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
{

findqosmax.FindQoSMaxim qosobject=new findqosmax.FindQoSMaxim();//εδω φτιαχνω αντικειμενο ενος web service
int[] arr2=qosobject.SearchTrainQoSMaxima(); //καλω τη μεθοδο του web service
int delay2=arr2[0];
Session["train_ws_ID"]=Convert.ToString(arr2[1]);
train.Service1 trainservice=new train.Service1();//και εδω φτιαχνω ενα αντικειμενο web service οπου καλω τη μεθοδο του
DataSet searchtrainset= trainservice.SearchTrain (Request.Form["lstStartingFrom2"],
Request.Form["lstDestination2"],Convert.ToDateTime(Request.Form["txtDepartureDate2"]),delay2);//
DataGrid2.DataSource=searchtrainset.Tables[0].DefaultView;
DataGrid2.DataBind();
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("page3.aspx",true);
}
}


Το περιεργο ειναι οτι τα web services μου τρεχουν κανονικα ,δηλαδη γεμιζουν το datagrid με τα αποτελεσματα που πρεπει.Το λαθος βγαινει ,οταν παει να πατησω το Button1_click στη page2 .Το λαθος :

Server was unable to process request. ---> System.Data.SqlTypes.SqlTypeException: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. at TrainService.Service1.SearchTrain(String startPlace, String destinationPlace, DateTime departureDate, Int32 timeDelay) in c:\inetpub\wwwroot\trainservice\service1.asmx.cs:line 127 --- End of inner exception stack trace

Το περιεργο ειναι οτι η μεθοδος SearchTrain δουλευει κανονικα ,αφου μου το γεμιζει το datagrid με τα αποτελεσματα,οι ημερομηνιες δηλαδη δεν εβγαλαν κανενα σφαλμα.

Προσεξτε οτι στην page2 ο κωδικας ειναι στην Page_Load.

Σας ευχαριστω παιδια.Οποιαδηποτε βοηθεια ευπροσδεκτη

Megiste,τι μπορω να κανω δηλαδη καλυτερο?

Megistos
Δημοσιεύσεις: 149
Εγγραφή: 14 Ιουν 2005 15:38

SOS προβλημα με asp.net web forms

Δημοσίευση από Megistos » 27 Ιουν 2006 15:02

Για την ερώτησή σου πώς μπορείς να το κάνεις αλλιώς, το Page_Load της σελίδας 2 μπορούσε κάλλιστα να μπει στο btnSearch_Click της σελίδας 1. Δεν χρειάζεται να πας σε άλλη σελίδα για την επεξεργασία.

* Με την διαφορά του ότι το Request.Form("xxx") θα γίνει xxx.text

Όσον αφορά τον κώδικα για τσέκαρε ένα cast το txtDepartureDate2 σε SqlDateTime να δεις τι σου πετάει. Κάποιο ψιλολαθάκι πρέπει να είναι. Πάντως μακράν το πιο safe για dates είναι να κάνεις convert από string "yyyy-MM-dd HH:mm:ss".

Ελπίζω να μην μου ξέφυγε κάτι γιατί δεν είμαι και πολύ δυνατός στην C#. VB.NET γράφω!
The Flame Still Burns

Megistos
Δημοσιεύσεις: 149
Εγγραφή: 14 Ιουν 2005 15:38

SOS προβλημα με asp.net web forms

Δημοσίευση από Megistos » 27 Ιουν 2006 15:04

Βασικά για ακόμη καλύτερα... Ποιά είναι η γραμμή 127 που πετάει το exception;
The Flame Still Burns

vraditis
Δημοσιεύσεις: 8
Εγγραφή: 15 Μάιος 2005 15:23

SOS προβλημα με asp.net web forms

Δημοσίευση από vraditis » 27 Ιουν 2006 15:48

H 127 γραμμη ,ειναι μια exception που εχει η SearchTrain.
Τι ενοεις να κανω cast?
Στη web form βαζω τις ημερομηνιες στη μορφη πχ 2006-08-23 ,και αποτι βλεπω ,τη βλεπει σωστα η βαση μου,αφου μου βγαζει σωστα τα αποτελεσματα στο datagrid.Το προβλημα ειναι μετα που παω να μεταφερθω σε αλλη σελιδα(page3.aspx) ,οπου μου βγαζει προβλημα στη μεθοδο που καλεσε ΣΩΣΤΑ πριν :o

Θα τρελαθουμε εντελως δηλαδη :cry:

Megistos
Δημοσιεύσεις: 149
Εγγραφή: 14 Ιουν 2005 15:38

SOS προβλημα με asp.net web forms

Δημοσίευση από Megistos » 27 Ιουν 2006 17:01

Έχεις κρατήσει το αποτέλεσμα; Γιατί όταν κάνεις Transfer στην 3η σελίδα καθαρίζεις το Querystring και το Form Collection και έτσι πολύ λογικό είναι να μην δουλεύει αφού το Request.Form["txtDepartureDate2"] θα γυρνάει Nothing που δεν γίνεται cast σε datetime.

ΥΓ1: Cast είναι το convert μέσες άκρες.

ΥΓ2: Με λίγα λόγια έκανες post όλον τον κωδικά σου εκτός από το σημείο που χτυπάει το λάθος; Πρόστιμο θες!
The Flame Still Burns

Megistos
Δημοσιεύσεις: 149
Εγγραφή: 14 Ιουν 2005 15:38

SOS προβλημα με asp.net web forms

Δημοσίευση από Megistos » 27 Ιουν 2006 17:03

Για να το κάνουμε πουρέ δηλαδή το:
Server.Transfer("page3.aspx", true)

Αντικαθίσταται με:
Server.Transfer("page3.aspx", false)
The Flame Still Burns

vraditis
Δημοσιεύσεις: 8
Εγγραφή: 15 Μάιος 2005 15:23

SOS προβλημα με asp.net web forms

Δημοσίευση από vraditis » 27 Ιουν 2006 22:12

Ayto pou les megiste ,de douleuei.

Telika alla3a tis Server.Transfer me Redirect entoles kai fainetai na lynetai to provlhma mexri stigmhs...

Απάντηση

Επιστροφή στο “ASP, ASP.NET”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες