salve
sto lavorando ad una gridview che modifica, cancella e inserisce nuovi record in un db Sql server 2008. Tutto funziona ma accade una cosa strana nell'inserimento di nuovi record. Inserito un nuovo record i campi di inserimento si svuotano, ma se ricarico la pagina mi carica un nuovo record uguale al precedente e vanno nel db. Non c'è modo di azzerare quei dati che evidentemente rimangono da qualche parte?
Posto il codice:
Imports System.Drawing
Imports System.Data.SqlClient
Imports System.Data
Partial Class _Default
Inherits System.Web.UI.Page
Private con As New SqlConnection("Data Source=.\SQLEXPRESS;database=Livelli;uid=sa;Password=******")
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
loadLivelli()
End If
End Sub
Protected Sub loadLivelli()
con.Open()
Dim cmd As New SqlCommand("Select * from Livelli", con)
Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet()
da.Fill(ds)
Dim count As Integer = ds.Tables(0).Rows.Count
con.Close()
If ds.Tables(0).Rows.Count > 0 Then
gridView.DataSource = ds
gridView.DataBind()
Else
ds.Tables(0).Rows.Add(ds.Tables(0).NewRow())
gridView.DataSource = ds
gridView.DataBind()
Dim columncount As Integer = gridView.Rows(0).Cells.Count
End If
End Sub
Protected Sub gridView_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
gridView.EditIndex = e.NewEditIndex
loadLivelli()
End Sub
Protected Sub gridView_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
Dim Id As String = gridView.DataKeys(e.RowIndex).Values("id").ToString()
Dim Dal As TextBox = DirectCast(gridView.Rows(e.RowIndex).FindControl("txtDal"), TextBox)
Dim Qualifica As TextBox = DirectCast(gridView.Rows(e.RowIndex).FindControl("txtQualifica"), TextBox)
Dim Livello As TextBox = DirectCast(gridView.Rows(e.RowIndex).FindControl("txtLivello"), TextBox)
Dim Al As TextBox = DirectCast(gridView.Rows(e.RowIndex).FindControl("txtAl"), TextBox)
con.Open()
Dim cmd As New SqlCommand(Convert.ToString("update Livelli set Dal='" + Dal.Text + "', Qualifica='" + Qualifica.Text + "', Livello='" + Livello.Text + "', Al='" + Al.Text + "' where id=") & Id, con)
cmd.ExecuteNonQuery()
con.Close()
gridView.EditIndex = -1
loadLivelli()
End Sub
Protected Sub gridView_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
gridView.EditIndex = -1
loadLivelli()
End Sub
Protected Sub gridView_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs)
Dim Id As String = gridView.DataKeys(e.RowIndex).Values("id").ToString()
con.Open()
Dim cmd As New SqlCommand("delete from Livelli where id=" + Id, con)
Dim result As Integer = cmd.ExecuteNonQuery()
con.Close()
If result = 1 Then
loadLivelli()
End If
End Sub
Protected Sub gridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim Id As String = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "id"))
Dim lnkbtnresult As Button = DirectCast(e.Row.FindControl("ButtonDelete"), Button)
If lnkbtnresult IsNot Nothing Then
lnkbtnresult.Attributes.Add("onclick", (Convert.ToString("javascript:return deleteConfirm('") & ID) + "')")
End If
End If
End Sub
Protected Sub gridView_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
If e.CommandName.Equals("AddNew") Then
Dim inID As TextBox = DirectCast(gridView.FooterRow.FindControl("inID"), TextBox)
Dim inDal As TextBox = DirectCast(gridView.FooterRow.FindControl("inDal"), TextBox)
Dim inQualifica As TextBox = DirectCast(gridView.FooterRow.FindControl("inQualifica"), TextBox)
Dim inLivello As TextBox = DirectCast(gridView.FooterRow.FindControl("inLivello"), TextBox)
Dim inAl As TextBox = DirectCast(gridView.FooterRow.FindControl("inAl"), TextBox)
con.Open()
Dim cmd As New SqlCommand("insert into Livelli(Dal,Qualifica,Livello,Al) values('" + inDal.Text + "','" + inQualifica.Text + "','" + inLivello.Text + "','" + inAl.Text + "')", con)
Dim result As Integer = cmd.ExecuteNonQuery()
con.Close()
If result = 1 Then
loadLivelli()
End If
End If
End Sub
End Class
grazie mille
Modificato da Luckymain il 29 maggio 2015 19.47 -