Το έκανα και παίζει εκτός από την μετατροπή string σε ακεραίου, αλλά θα γράψω τον κώδικα να μου πείτε πως μπορώ να κάνω καμιά βελτίωση, αλλά και να καταλάβετε τι ακριβώς θέλω.
Λοιπόν εν ολίγοις για να μη διαβάσετε όλο τον κώδικα αν δεν μπορείτε αυτή τη στιγμή ή βαριέστε:
1. Και τα δύο sub είναι στην ίδια σελίδα, μέσα στο ίδιο <script></script>.
2. Το ένα ανεβάζει το αρχείο στο server, το άλλο γράφει στη βάση
3. Ωστόσο η μία τιμή που θέλω να γράψω στη βάση, είναι το path του αρχείου στο server
4. Πρώτα πατάω το κουμπάκι για ανέβει το αρχείο (το ένα το sub), και ύστερα κάνω την εγγραφή στη βάση πατώντας άλλο κουμπάκι (το άλλο το sub)
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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | Dim keepserverpath As String <-- η μεταβλητή που μεταφέρει τη τιμή από το ένα sub στο άλλο, όπου είναι bold είναι η μεταβλητή 'Κώδικας του κουμπιού εισαγωγής εγγραφής Protected Sub InsertButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) <--Το πρώτο sub 'Ορισμός μεταβλητών για να πάρουμε τις τιμές από τα controls του FormView Dim TempPCaption As TextBox Dim TempProductName As TextBox Dim TempProductDescription As TextBox Dim TempProductSupplier As DropDownList Dim TempProductCategory As DropDownList ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Ορισμός παραμέτρων για το Insert Dim ProductCaptionParameter As New Parameter Dim ProductNameParameter As New Parameter Dim ProductDescriptionParameter As New Parameter Dim ProductSupplierParameter As New Parameter Dim ProductCategoryParameter As New Parameter Dim ProductServerSideFilePath As New Parameter '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Βρίσκουμε τα control για την εισαγωγή κειμένων στη βάση TempPCaption = ProductManagementFormView.FindControl("PCaptionTextBox") TempProductName = ProductManagementFormView.FindControl("ProdNameTextBox") TempProductDescription = ProductManagementFormView.FindControl("DescriptionTextBox") TempProductSupplier = ProductManagementFormView.FindControl("SupplierDropDownList") TempProductCategory = ProductManagementFormView.FindControl("CategoryDropDownList") '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Βάζουμε στις InsertParameters τιμές '1. Product Caption Parameter ProductCaptionParameter.DefaultValue = TempPCaption.Text ProductCaptionParameter.Name = "ProductCaption" ProductCaptionParameter.Type = TypeCode.String '2. Product Name Parameter ProductNameParameter.DefaultValue = TempProductName.Text ProductNameParameter.Name = "ProductName" '3. Product Description Parameter ProductDescriptionParameter.DefaultValue = TempProductDescription.Text ProductDescriptionParameter.Name = "ProductDescription" '4. Product Supplier Parameter ProductSupplierParameter.DefaultValue = Convert.ToInt32(TempProductSupplier.DataValueField) ProductSupplierParameter.Name = "ProductSupplierID" '5 Product Category Parameter ProductCategoryParameter.DefaultValue = Convert.ToInt32(TempProductCategory.DataValueField) ProductCategoryParameter.Name = "ProductCategoryID" '6 Product Server Side File Path If keepserverpath = "" Then keepserverpath = "c:\" ProductServerSideFilePath.DefaultValue = keepserverpath ProductServerSideFilePath.Name = "ProductIconPath" Else ProductServerSideFilePath.DefaultValue = keepserverpath ProductServerSideFilePath.Name = "ProductIconPath" End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ProductSQLDataSource.InsertCommandType = SqlDataSourceCommandType.Text ProductSQLDataSource.InsertParameters.Add(ProductCaptionParameter) ProductSQLDataSource.InsertParameters.Add(ProductNameParameter) ProductSQLDataSource.InsertParameters.Add(ProductDescriptionParameter) ProductSQLDataSource.InsertParameters.Add(ProductSupplierParameter) ProductSQLDataSource.InsertParameters.Add(ProductCategoryParameter) ProductSQLDataSource.InsertParameters.Add(ProductServerSideFilePath) ProductSQLDataSource.InsertCommand = "INSERT INTO Products(ProdName, PCaption, Description, SupplierID, CategoryID, picon) VALUES (@ProductName, @ProductCaption, @ProductDescription, @ProductSupplierID, @ProductCategoryID, @ProductIconPath)" ProductSQLDataSource.Insert() ProductManagementFormView.ChangeMode(FormViewMode.ReadOnly) End Sub 'Ανέβασμα του αρχείου Protected Sub FileUploadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) <-- Το δεύτερο sub 'Ορισμός μεταβλητών για το ανέβασμα του αρχείου Dim TempFileUpload As New FileUpload Dim TempResultLabel As New Label Dim ClientSideFileName As String Dim ServerSideFilePath As String '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Βρίσκουμε τα control για το ανέβασμα του αρχείου TempFileUpload = ProductManagementFormView.FindControl("PiconFileUpload") TempResultLabel = ProductManagementFormView.FindControl("UploadResultLabel") '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Ορίζουμε το path του server ServerSideFilePath = "C:\" 'Εκίννηση διαδικασίας ανεβάσματος αρχείου If TempFileUpload.HasFile Then 'Παίρνουμε το όνομα του αρχείου που βρίσκεται στον client ClientSideFileName = TempFileUpload.FileName 'Ελέγχουμε αν αυτό το αρχείο είναι κενό ή είναι μεγαλύτερο από 4 MB If 0 < TempFileUpload.FileBytes.Length <= 2048 Then 'Καθορίζουμε το path που θα αποθηκευτεί το αρχείο στο server + το όνομα του αρχείου ' και παίρνουμε το path για να το αποθηκεύσουμε στη βάση ServerSideFilePath = ServerSideFilePath + ClientSideFileName keepserverpath = ServerSideFilePath '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Ελέγχουμε αν υπάρχει ήδη το αρχείο με αυτό το όνομα If System.IO.File.Exists(ServerSideFilePath) Then TempResultLabel.Text = "Το αρχείο που προσπαθείτε να ανεβάσετε υπάρχει ήδη" Else 'Ανεβάζουμε όλες τις πληροφορίες στο server Try TempFileUpload.SaveAs(ServerSideFilePath) TempResultLabel.Text = "Το αρχείο " + TempFileUpload.FileName + " ανέβηκε επιτυχώς" Catch ex As Exception TempResultLabel.Text = "Η εισαγωγή απέτυχε." + ex.Message End Try End If Else TempResultLabel.Text = "Το αρχείο είναι μεγαλύτερο από 2 MB" End If Else Dim setValueToValidator As RequiredFieldValidator setValueToValidator = ProductManagementFormView.FindControl("PiconFileUploadValidator") setValueToValidator.Validate() End If End Sub |