Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

To Null or not to Null??

Îåêßíçóå áðü ôï ìÝëïò epp1123. Τελευταία δημοσίευση από το μέλος epp1123 στις 18-03-2009, 16:07. Υπάρχουν 19 απαντήσεις.
Σελίδα 1 από 2 (20 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  15-05-2008, 12:48 42012

    To Null or not to Null??

    Καμιά φορά έχω την εντύπωση, οι υπολογιστές έχουν βάλει σκοπό να μας τρελάνουν, λες και το κάνουν ως αντίδραση στην ταλαιπωρία που τραβάνε από τα χεράκια μας. Και μετά τον μίνι νευρικό κλωνισμό και τον αναθεματισμό ας πάμε στο θέμα.

    Χρησιμοποιώ το <asp:FormView> και τα διάφορα Templates που έχει (ItemTemplate, InsertItemTemplate κτλ), και θέλω να επεξεργάζομαι, ανανεώνω, εισάγω νέα στοιχεία στη βάση, μέσα του συγκεκριμένου control. Έλα ντε που μου λέει ότι δεν εισάγει null τιμές, γιατί λέει οι παράμετροι είναι κενοί, ενώ είναι ελεγμένο, ότι εισάγει δεδομένα, δηλαδή τα δεδομένα φεύγουν στη βάση. Βέβαια η δοκιμή έγινε στο παράθυρο του QueryBuilder, και πολύ πιθανόν να έχω παραλήψει μία λεπτομέρεια στον κώδικα. Για αυτό λοιπόν σας τον παραθέτω, ο οποίος σε όλα  δουλεύει εκτός από αυτό το σημείο. Ευχαριστώ εκ των προτέρων.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <%@ Page Language="VB" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <script runat="server">

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <link rel="stylesheet" href="../App_Themes/SkinFile/pages.css" />
    <title>Untitled Page</title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <table width="100%">
    <tr>
    <td><h3>
    Διαχείριση Πελατών</h3>
    </td>
    </tr>
    </table>

    </div>
    &nbsp;<asp:FormView ID="FormView1" runat="server" AllowPaging="True" DataSourceID="CustomersSqlDataSource" Font-Names="Tahoma" Font-Size="9pt" ForeColor="DimGray">
    <EditItemTemplate>
    Όνομα Πελάτη:
    <asp:TextBox ID="CustomerNameTextBox" runat="server" Text='<%# Bind("CustomerName") %>'>
    </asp:TextBox><br />
    Περιγραφή Πελάτη:
    <asp:TextBox ID="CustomeDescriptionTextBox" runat="server" Text='<%# Bind("CustomeDescription") %>'>
    </asp:TextBox><br />
    Ιστοσελίδα Πελάτη:
    <asp:TextBox ID="CustomerWebsiteTextBox" runat="server" Text='<%# Bind("CustomerWebsite") %>'>
    </asp:TextBox><br />
    <br />
    <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update"
    Text="Update">
    </asp:LinkButton>
    <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
    Text="Cancel">
    </asp:LinkButton>
    </EditItemTemplate>
    <InsertItemTemplate>
    Όνομα Πελάτη:
    <asp:TextBox ID="CustomerNameTextBox" runat="server" Text='<%# Bind("CustomerName") %>'>
    </asp:TextBox><br />
    Περιγραφή Πελάτη:
    <asp:TextBox ID="CustomeDescriptionTextBox" runat="server" Text='<%# Bind("CustomeDescription") %>'>
    </asp:TextBox><br />
    Ιστοσελίδα Πελάτη:
    <asp:TextBox ID="CustomerWebsiteTextBox" runat="server" Text='<%# Bind("CustomerWebsite") %>'>
    </asp:TextBox><br />
    <br />
    <br />
    <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
    Text="Insert">
    </asp:LinkButton>
    <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
    Text="Cancel">
    </asp:LinkButton>
    </InsertItemTemplate>
    <ItemTemplate>
    <asp:Button ID="EditButton" runat="server" CausesValidation="False" Text="Επεξεργασία Πελάτη"
    CommandName="Edit">
    </asp:Button>
    <asp:Button ID="DeleteButton" runat="server" CausesValidation="False" Text="Διαγραφή Πελάτη"
    CommandName="Delete">
    </asp:Button>
    <asp:Button ID="Button1" runat="server" CausesValidation="False" CommandName="New" Text="Εισαγωγή Νέου Πελάτη">
    </asp:Button>
    <br />
    <br />
    Όνομα Πελάτη:
    <asp:Label ID="CustomerNameLabel" runat="server" Text='<%# Bind("CustomerName") %>'>
    </asp:Label><br />
    Περιγραφή Πελάτη:
    <asp:Label ID="CustomeDescriptionLabel" runat="server" Text='<%# Bind("CustomeDescription") %>'>
    </asp:Label><br />
    Ιστοσελίδα Πελάτη:
    <asp:Label ID="CustomerWebsiteLabel" runat="server" Text='<%# Bind("CustomerWebsite") %>'>
    </asp:Label>
    </ItemTemplate>
    </asp:FormView>


    <!--Start of Customers SQL Data Source -->
    <asp:SqlDataSource ID="CustomersSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:cubewareWebConnectionString %>"
    SelectCommand="SELECT CustomerWebsite, CustomeDescription, CustomerName FROM Customers" InsertCommand="INSERT INTO Customers(CustomerName, CustomeDescription, CustomerWebsite) VALUES (@CNTB,@CDTB,@CWTB)" UpdateCommand="UPDATE Customers SET CustomerName =@CNTB, CustomeDescription =@CDTB, CustomerWebsite =@CWTB">
    <InsertParameters>
    <asp:FormParameter Name="CNTB" FormField="CustomerNameTextBox" />
    <asp:FormParameter Name="CDTB" FormField="CustomeDescriptionTextBox" />
    <asp:FormParameter Name="CWTB" FormField="CustomerWebsiteTextBox" />
    </InsertParameters>

    <UpdateParameters>
    <asp:FormParameter Name="CNTB" FormField="CustomerNameTextBox" />
    <asp:FormParameter Name="CDTB" FormField="CustomeDescriptionTextBox" />
    <asp:FormParameter Name="CWTB" FormField="CustomerWebsiteTextBox" />
    </UpdateParameters>
    </asp:SqlDataSource>
    <!--End of Customers SQL Data Source -->

    </form>
    </body>
    </html>




  •  22-05-2008, 13:14 42144 σε απάντηση της 42012

    Απ: To Null or not to Null??

    Τελικά το έλυσα το πρόβλημα κάνοντας  δύο πράγματα:

    1. Αφαίρεσαι τον παρακάτω κώδικα

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                <InsertParameters>
    <asp:FormParameter Name="CNTB" FormField="CustomerNameTextBox" />
    <asp:FormParameter Name="CDTB" FormField="CustomeDescriptionTextBox" />
    <asp:FormParameter Name="CWTB" FormField="CustomerWebsiteTextBox" />
    </InsertParameters>

    <UpdateParameters>
    <asp:FormParameter Name="CNTB" FormField="CustomerNameTextBox" />
    <asp:FormParameter Name="CDTB" FormField="CustomeDescriptionTextBox" />
    <asp:FormParameter Name="CWTB" FormField="CustomerWebsiteTextBox" />
    </UpdateParameters>
    </asp:SqlDataSource>

    2. Αντικατέστησα αυτή τη γραμμή κώδικα
    InsertCommand="INSERT INTO Customers(CustomerName, CustomeDescription, CustomerWebsite) VALUES (@CNTB,@CDTB,@CWTB)"
    με αυτήν
    InsertCommand="INSERT INTO Customers(CustomerName, CustomeDescription, CustomerWebsite) VALUES (@CustomerName,@CustomeDescription,@CustomerWebsite)"


    Το ίδιο έκανα και για το update.

    Ερώτηση Κρίσεως: Τα πάσης φύσεων Parameters (Insert, Update κτλ) πως και πότε χρησιμοποιούνται, αλλά και γιατί; Ευχαριστώ
  •  22-05-2008, 13:31 42146 σε απάντηση της 42012

    Απ: To Null or not to Null??

    Στοιχείο Περιγραφή
    ControlParameter Προσδιορίζει μία παράμετρο της οποίας η τιμή προέρχεται από ένα control στη σελίδα
    QueryStringParameter Προσδιορίζει μία παράμετρο της οποίας η τιμή προέρχεται από ένα query string στο URL.
    FormParameter Προσδιορίζει μία παράμετρο της οποίας η τιμή προέρχεται από ένα πεδίο που βρίσκεται μέσα στην HTML φόρμα.
    SessionParameter Προσδιορίζει μία παράμετρο της οποίας η τιμή προέρχεται από ένα item σε κατάσταση session.
    ProfileParameter Προσδιορίζει μία παράμετρο της οποίας η τιμή προέρχεται από μία ιδιότητα στο προφίλ του χρήστη
    CookieParameter Προσδιορίζει μία παράμετρο της οποίας η τιμή προέρχεται από ένα cookie.

    Τελικά τα βρήκα!!!!Yes.
  •  11-03-2009, 21:08 49107 σε απάντηση της 42146

    Απ: To Null or not to Null??

    Επειδή έχω παρόμοιο πρόβλημα αλλά γράφω σε C# αν μπορείς βοήθησέ με.
    Απ'ότι κατάλαβα στα SQL-queries χρησιμοποιείς τις μεταβλητές απο bind?Και αν ναι μπορώ να κάνω κάτι αντίστοιχο?
  •  11-03-2009, 21:47 49110 σε απάντηση της 49107

    Απ: To Null or not to Null??

    Δώσε μου μία καλύτερη περιγραφή του προβλήματος σου για να μπορέσω να καταλάβω τι ακριβώς θες. Wink Ευχαριστώ
  •  12-03-2009, 00:02 49111 σε απάντηση της 49110

    Απ: To Null or not to Null??

    Ρίξε μια ματιά εδώ  http://www.dotnetzone.gr/cs/forums/49106/ShowThread.aspx#49106
    Ευχαριστώ εκ των πρωτέρων για το ενδιαφέρον
  •  12-03-2009, 13:40 49127 σε απάντηση της 49111

    Απ: To Null or not to Null??

    Καλημέρα, χτες πήγα να σου απαντήσω, αλλά έδειχνε ότι το site είχε πέσει. Λοιπόν, καταρχάς, ότι γίνεται με VB, γίνεται και με C# αυτό είναι δεδομένο. Εν δευτέροις, αν δεις τον asp.net κώδικα που είχα παραθέσει πιο ψηλά υπάρχει κάποιος κώδικα με πράσινα, είναι το <%Bind()%>. Από τη στιγμή που υπάρχει το <%Bind()%> ο παρακάτω κώδικας δεν χρειάζεται.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                <InsertParameters>
                <asp:FormParameter Name="CNTB"  FormField="CustomerNameTextBox" />
                <asp:FormParameter Name="CDTB"  FormField="CustomeDescriptionTextBox" />
                 <asp:FormParameter Name="CWTB" FormField="CustomerWebsiteTextBox"  />
                </InsertParameters>
            
                <UpdateParameters>
                 <asp:FormParameter Name="CNTB"  FormField="CustomerNameTextBox" />
                <asp:FormParameter Name="CDTB"  FormField="CustomeDescriptionTextBox" />
                 <asp:FormParameter Name="CWTB" FormField="CustomerWebsiteTextBox"  />  
                </UpdateParameters>

    ΑΝ δεν είχα κάνει το <%Bind()%> τότε θα χρειαζόντουσαν τα parameters για να κάνουν το bind, γιατί τα parameters για αυτό το λόγο χρησιμοποιούνται, για να κάνουν bind την τιμή ενός property ενός Control. Σου δίνω ένα παράδειγμα που ΔΕΝ χρησιμοποιείται το <%Bind%>, αλλά χρησιμοποιούνται τα parameters.

    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.controlparameter.aspx


  •  13-03-2009, 01:40 49145 σε απάντηση της 49127

    Απ: To Null or not to Null??

    Η αλήθεια είναι ότι δεν κατάφερα να μου δουλέψει.Να σε ρωτήσω κάτι στη σελίδα που μου δίνεις αυτό που αναφέρει στην αρχή στο syntax πρέπει να το προσθέσω κάπου?
  •  13-03-2009, 03:52 49146 σε απάντηση της 49145

    Απ: To Null or not to Null??

    Όχι, δε χρειάζεται.

    Για παρέθεσε τον project σου ή τη σελιδα σε ένα συνημμένο, ή κάνε post τον κώδικα για να δούμε τι γίνεται.

    Για να βάλεις συνημένο πας στη σύνταξη μηνύματος διαλέγεις τη καρτέλα επιλογές και ύστερα Συνημμένο αρχείο->Προσθήκη / Ανανέωση
  •  16-03-2009, 09:58 49210 σε απάντηση της 49146

    Απ: To Null or not to Null??

    Συνημμένα: default.rar
    Έλειπα αυτές τις μέρες γι αυτό άργησα να απαντήσω.

    Σου στέλνω αρχικά το default.aspx μόνο και αν θες αργότερα σου στέλνω και το project αν χρειαστεί.
  •  16-03-2009, 17:53 49225 σε απάντηση της 49210

    Απ: To Null or not to Null??

    Λοιπόν, έχουμε και λέμε, για να ξεκαθαρίσω λίγο την ομίχλη που μπορεί να έχεις μπροστά σου:

    1. Οποιαδήποτε μορφοποίηση (CSS), θα την έχεις σε εξωτερικό αρχείο, αν την έχεις μέσα στον asp.net κώδικα σου, θα φτάσεις να έχεις styles από και από κει και θα χάνεσαι.

    2. Οποιαδήποτε πεδία, πχ στη περίπτωση σου textboxes τα οποία είναι μέσα στο LoginView, δεν μπορεί να "δει" κανένας που είναι έξω από το LoginView, για αυτό δε τα έβλεπαν οι parameters τα πεδία σου. Φαντάζομαι ότι αυτό εννοούσες ότι είπες πως δε κατάφερες να το κάνεις να δουλέψει. Τώρα πως αντιμετωπίζεται αυτό. Οι τρόποι είναι 2. Ο ένας που μαρέσει και είναι ο πιο σωστός είναι μέσα στο LoginView εκεί που θες ο χρήστης να εισάγει δεδομένα να χρησιμοποιήσεις ένα FormView και πολύ από τη δουλειά σου την κάνει αυτόματα η asp.net. Η άλλη είναι να γράψεις C# κώδικα. Ουσιαστικά μετακομίζεις όλο το θέμα των parameters μέσα στο κώδικα που εκτελείται όταν πατάς το κουμπί για την υποβολή των δεδομένων. Εκεί γράφεις κώδικα που θα σου φέρει τις τιμές των πεδίων, που θες εσύ, που βρίσκονται μέσα στο LoginView.
  •  17-03-2009, 00:23 49236 σε απάντηση της 49225

    Απ: To Null or not to Null??

    Να αρχισω λέγοντας ένα μεγάλο ευχαριστώ για τη μέχρι τώρα βοήθειά σου

    1.Βασικά τα styles θα τα ταχτοποιήσω στο τέλος.Προς το παρόν δε ασχολούμαι μάζι τους(δυστυχώς τα έχει κάνει έτσι το MS Visual Developer)

    2.Σήμερα δοκίμασα να φτιάξω σε C# αυτό που θέλω αλλά λόγω loginview δε μπορώ να δω τα textbox.Mε το FormView δεν το κατάφερα ακόμα να το δουλέψω σωστά.Για κάποιο λόγο δεν κάνει τίποτα όταν πατάω το "Submit Query".Ελπίζω μέχρι αύριο να τελειώσω με αυτό
  •  17-03-2009, 00:29 49237 σε απάντηση της 49236

    Απ: To Null or not to Null??

    LoginView3.FindControl("Control ID"). 

    Μέσα στη παρένθεση βάζεις το id του control
  •  18-03-2009, 10:05 49329 σε απάντηση της 49237

    Απ: To Null or not to Null??

    Προς το παρόν άφησα το SqlDataSource μέσα στο Loginview   και η συνάρτηση το βλέπει και το εκτελεί ως εξής:

    SqlDataSource DataSource1 = (SqlDataSource)this.LoginView7.FindControl("DataSource1");

                if (DataSource1 != null)

                    DataSource1.Insert();

    Μέχρι εδώ κανένα πρόβλημα.Όμως πάλι το datasource επιστρέφει NULL  στις παραμέτρους... :S
  •  18-03-2009, 10:52 49336 σε απάντηση της 49329

    Απ: To Null or not to Null??

    Ναι γιατί και το FormView είναι σα το LoginView, ότι είναι "απέξω", δε μπορεί να δει ότι είναι από "μέσα", συγνώμμη αν ξέχασα να στο τονίσω
Σελίδα 1 από 2 (20 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems