Gestione News

mercoledì 04 ottobre 2006 - 13.43

The_Rock Profilo | Junior Member

Ciao a tutti ragazzi.
Come da titolo devo fare una gestione News con il db in locale Northwind.
Inserimento , modifica e cancellazione verso la tabella News del Dd Northwind, creata da me.
Ho inserito i campi ID_News(tipo dati:int, dimensioni:4) , Titolo_News(tipo dati:nvarchar, dimensioni:50), Testo_News(tipo dati:nvarchar, dimensioni:500) .

Ho iniziato con l'inserimento ma non mi inserisce i campi nella tabella News.

Vi invio la classe e vi ringrazio grazie per l'eventuale aiuto.

Un saluto.
The_Rock

The_Rock Profilo | Junior Member

No, Marco.
Un saluto,
The_Rock

The_Rock Profilo | Junior Member

Ho risolto cosi'.E funziona!!!
Ora però il db non dovrebbe aggiornarsi direttamente dal form, ma dovrei inserire due textbox e un button in modo che sia l'utente stesso ad inserire i dati all'esecuzione della pagina e successivamente premendo il tasto button ad aggiornare il db.Come posso fare?
Per l'ID_News ho inserito il tipo di dati "contatore."

Un saluto,
The_Rock

The_Rock Profilo | Junior Member

>>Ho risolto cosi'.E funziona!!!
>>Ora però il db non dovrebbe aggiornarsi direttamente dal form,
>>ma dovrei inserire due textbox e un button in modo che sia l'utente
>>stesso ad inserire i dati all'esecuzione della pagina e successivamente
>>premendo il tasto button ad aggiornare il db.Come posso fare?
>>Per l'ID_News ho inserito il tipo di dati "contatore."
>Ma di acesso ai dati ne sai niente? ado.net?
>
>leggi qui
>http://it.gotdotnet.com/quickstart/howto/doc/adoplus/adoplusoverview.aspx
>
>-------------
>Marco Caruso
>[MCSD.NET]
>il mio blog
>http://blogs.dotnethell.it/Coach

Beh ne so molto poco, come forse ti ricorderai sono alle prime armi e mi sto sforzando tantissimo in questi giorni, ma la strada da fare e' ancora molto lunga. Vedo se riesco a fare qualcosa con la pagina che mi hai inviato.
Grazie.
Un saluto,
The_Rock

The_Rock Profilo | Junior Member

Arrivato a questo punto dovrei eliminare la riga selezionata usando il Databinder.Eval pero' mi da' errore.Dove ho sbagliato?
Un saluto,
The_Rock

The_Rock Profilo | Junior Member

>Prima cosa non postare interi file ma solo alcune porzioni.
Hai Ragione... dalla prossima volta evitero'.
>l'errore è qui
><asp:ButtonColumn Text="Elimina" CommandName="Delete"><%#
>Databinder.Eval(Container.DataItem, "ID_News") %></asp:ButtonColumn>
>
>devi scrivere
>
><asp:ButtonColumn Text="Elimina" CommandName="Delete" CommandArgument='<%#
>Databinder.Eval(Container.DataItem, "ID_News") %>' ></asp:ButtonColumn>
Si avevo trovato in Internet che bisognava usare il CommandArgument pero' quest'ultimo non è presente tra quelli a disposizione e non riesco a capire il perche?
>e poi quando fai la cancellazione devi riassegnare il datasource
>alla datagrid e rieffetturare il databind
>
Grazie!
>-------------
>Marco Caruso
>[MCSD.NET]
>il mio blog
>http://blogs.dotnethell.it/Coach

Un saluto,
The_Rock

The_Rock Profilo | Junior Member

Scusate se insisto ma e' normale che non mi appare il CommandArgument fra le scelte selezionabili per eseguire il Databinder.Eval? L'unico che mi appare e' il CommandName. Forse per il ButtonColumn bisogna applicarlo in un altro modo?
Un saluto,
The_Rock

The_Rock Profilo | Junior Member

Perfetto coach... come sempre!
Un saluto,
The_Rock

The_Rock Profilo | Junior Member

Sono riuscito a fare la cancellazione... i miei tempi sono quelli che sono ma e' tutto esercizio

Nuovo problema:

Private Sub DG_News1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DG_News1.ItemCommand
Dim index As String = e.CommandArgument
'istanzio la classe Insert
Dim a As New Insert
'richiamo la funzione delPratica che uso per cancellare il record dalla tabella
a.delPratica(index)
AggiornaDataGrid()

E con la funzione ItemCommand chiamo l'Id_News presa con l'ormai famoso databinder.item e mi esegue la cancellazione.
Ora pero' dovendo fare anche la modifica di un record usando sempre il databinder.eval mi va in crash in quanto usando di nuovo l'item command dovrei gestire l'eccezione ma non so come fare. Mi date qualche dritta?

E poi: e' corretto il codice UpdatePratica che serve per modificare il record nella classe Insert? :
Public Sub updatePratica(ByVal Titolo_News As String)
Dim Con As New SqlClient.SqlConnection(strConn)
Try
Con.Open()
Dim objCommand As New SqlClient.SqlCommand
objCommand.Connection = Con
objCommand.CommandType = CommandType.Text
objCommand.CommandText = "update News set 'Titolo_News'='& Titolo_News WHERE Id_News = Id_News"
objCommand.ExecuteNonQuery()
Catch e As Exception
Throw New Exception("Errore nella classe ""Insert"" [Funzione delPratica] " + e.Message)
Finally
Con.Close()
End Try
End Sub
Un saluto,
The_Rock

The_Rock Profilo | Junior Member

Grazie mille per il tuo fondamentale aiuto Coach. Finalmente ho terminato questa benedetta Gestione_News e funziona tutto perfettamente. e' il mio primo progettino effettivo e sono molto soddisfatto. Non so se ce l'avrei fatta senza il tuo aiuto.Su Internet per quante cose utilissime ci possano essere tutto tutto non c'e' e il libro da me prenotato non è ancora arrivato.
Chiudo qui il thred. Se volete posso postare il codice in modo che possa tornare utile a qualche utente. Che dite?
Un saluto,
The_Rock

The_Rock Profilo | Junior Member

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="Gestione_News.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:button id="Button1" style="Z-INDEX: 101; LEFT: 600px; POSITION: absolute; TOP: 64px" runat="server"
Text="Inserisci" Width="72px"></asp:button><asp:datagrid id="DG_News1" style="Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 136px"
runat="server" Width="369px" DataKeyField="ID_News" Height="112px" AutoGenerateColumns="False" BackColor="RoyalBlue" ForeColor="White" BorderColor="#FFFF66"
BorderWidth="2px" CellSpacing="-1">
<AlternatingItemStyle ForeColor="Red"></AlternatingItemStyle>
<Columns>
<asp:BoundColumn DataField="ID_News" HeaderText="ID_News"></asp:BoundColumn>
<asp:BoundColumn DataField="Titolo_News" HeaderText="Titolo"></asp:BoundColumn>
<asp:BoundColumn DataField="Testo_News" HeaderText="Testo">
<HeaderStyle Width="2000px"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton id=listbox1 runat="server" CommandArgument='<%# Databinder.Eval(Container.DataItem,"Id_News")%>' CommandName="delete"> cancella</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton id="LinkButton1" runat="server" CommandArgument='<%# Databinder.Eval(Container.DataItem,"Id_News")%>' CommandName="update"> modifica</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
<asp:TextBox id="TextBox1" style="Z-INDEX: 103; LEFT: 176px; POSITION: absolute; TOP: 64px" runat="server"
Width="88px"></asp:TextBox>
<asp:TextBox id="TextBox2" style="Z-INDEX: 104; LEFT: 288px; POSITION: absolute; TOP: 64px" runat="server"
Width="272px"></asp:TextBox>
<asp:Label id="Label1" style="Z-INDEX: 105; LEFT: 176px; POSITION: absolute; TOP: 32px" runat="server"
Width="48px" Height="8px" ForeColor="Black">Titolo</asp:Label>
<asp:Label id="Label2" style="Z-INDEX: 106; LEFT: 296px; POSITION: absolute; TOP: 32px" runat="server"
Width="40px" Height="24px">Testo</asp:Label></form>
</body>
</HTML>




Codice Classe Insert:^^^^^^^^^^^^^^^^^

Imports System.Data.SqlClient
Imports System.Data
Public Class Insert
Dim strConn As String = System.Configuration.ConfigurationSettings.AppSettings("Connection").ToString()
Public Sub InsPratica(ByVal Titolo_News As String, ByVal Testo_News As String)
Dim Con As New SqlClient.SqlConnection(strConn)
Try
Con.Open()
Dim objCommand As New SqlClient.SqlCommand
objCommand.Connection = Con
objCommand.CommandType = CommandType.Text
objCommand.CommandText = "Insert INTO News (Titolo_News, Testo_News) VALUES ('" & Titolo_News & "','" & Testo_News & "')"
objCommand.ExecuteNonQuery()
Catch e As Exception
Throw New Exception("Errore nella classe ""Insert"" [Funzione InsPratica] " + e.Message)
Finally
Con.Close()
End Try
End Sub
Public Sub delPratica(ByVal Id_News As Integer)
Dim Con As New SqlClient.SqlConnection(strConn)
Try
Con.Open()
Dim objCommand As New SqlClient.SqlCommand
objCommand.Connection = Con
objCommand.CommandType = CommandType.Text
objCommand.CommandText = "delete from News where Id_News = " & Id_News
objCommand.ExecuteNonQuery()
Catch e As Exception
Throw New Exception("Errore nella classe ""Insert"" [Funzione delPratica] " + e.Message)
Finally
Con.Close()
End Try
End Sub
Public Sub updatePratica(ByVal Id_News As Integer, ByVal Titolo_News As String, ByVal Testo_News As String)
Dim Con As New SqlClient.SqlConnection(strConn)
Try
Con.Open()
Dim objCommand As New SqlClient.SqlCommand
objCommand.Connection = Con
objCommand.CommandType = CommandType.Text
objCommand.CommandText = "update News set Titolo_News='" & Titolo_News & "', Testo_News='" & Testo_News & "' WHERE Id_News =" & Id_News
objCommand.ExecuteNonQuery()
Catch e As Exception
Throw New Exception("Errore nella classe ""Insert"" [Funzione delPratica] " + e.Message)
Finally
Con.Close()
End Try
End Sub
Public Function LoadallNews() As DataTable
Dim Con As New SqlClient.SqlConnection(strConn)
Try
Con.Open()
Dim objCommand As New SqlClient.SqlCommand
objCommand.Connection = Con
objCommand.CommandType = CommandType.Text
objCommand.CommandText = "select * from News"
Dim MyDataTable As New DataTable
Dim myAdpt As New SqlDataAdapter
myAdpt.SelectCommand = objCommand
myAdpt.Fill(MyDataTable)
Return MyDataTable
Catch e As Exception
Throw New Exception("Errore nella classe ""Insert"" [Funzione delPratica] " + e.Message)
Finally
Con.Close()
End Try
End Function
End Class




Codice Web form ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Public Class WebForm1
Inherits System.Web.UI.Page
Public Sub AggiornaDataGrid()
Dim objClasseSelect As New Insert
DG_News1.DataSource = objClasseSelect.LoadallNews
DG_News1.DataBind()
End Sub
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AggiornaDataGrid()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objClasseInsert As New Insert
objClasseInsert.InsPratica(TextBox1.Text, TextBox2.Text)
AggiornaDataGrid()
End Sub
Private Sub DG_News1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DG_News1.ItemCommand
Dim index As String = e.CommandArgument
Dim a As New Insert
Dim b As New Insert
Dim c As String
Dim d As String
c = TextBox1.Text
d = TextBox2.Text
If e.CommandName = "delete" Then
a.delPratica(index)
ElseIf e.CommandName = "update" Then
b.updatePratica(index, c, d)
End If
AggiornaDataGrid()
End Sub
End Class
Un saluto,
The_Rock
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5