webForumDet fria alternativet

fel värde från serverkontroll, textbox

.NET

2 svar · 165 visningar · startad av Cale

Medlem sedan mars 200490 inlägg
Frågan#1

En datalist som ska uppdateras, med hjälp av response.write har jag sett
att det värde som tas från textrutan (där det nya värdet skrivs in) är
samma som plockas ut ur databasen, alltså uppdateras databasen med
det gamla värdet istället för det nya..

jag vet inte vad jag har gjort för det funkade förrut..

borde ha med ImageDataList_UpdateCommand att göra.
antagligen detta som inte stämmer riktigt kanske?
e.Item.FindControl

<%@ Page Language="VB" Debug="True"%>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDB" %>
<%@ import Namespace="System.Web.UI.WebControls" %>
<%@ import Namespace="System.IO" %>
<script runat="server">

    '<- Databasanslutning ->
    Dim myConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &_
	Server.MapPath("db/images.mdb"))
    '***********************************************************
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
            FillDataList()
    End Sub
    '***********************************************************
    Protected Sub FillDataList()
		Dim strSQL As String = "SELECT * FROM galleries"
		Dim myCommand As New OleDb.OleDbCommand(strSQL, myConnection)
		Dim myReader As OleDbDataReader
		Try
			myConnection.Open()
			myReader = myCommand.ExecuteReader
			ImageDataList.DataSource = myReader
			ImageDataList.DataBind()
			'myReader.Close()
			myConnection.Close()
		Catch ex As Exception
			'Ev Felhantering
			lblMessage.Text = ex.tostring
		End Try
    End Sub
    '***********************************************************
   sub ImageDataList_ItemCommand(Sender as object, e as DataListCommandEventArgs)
      ImageDataList.SelectedIndex = e.Item.ItemIndex
	  FillDataList()
   end sub
    '***********************************************************
   sub ImageDataList_EditCommand(Sender as object, e as DataListCommandEventArgs)
      ImageDataList.EditItemIndex = e.Item.ItemIndex
	  FillDataList()
   end sub
    '***********************************************************
   sub ImageDataList_CancelCommand(Sender as object, e as DataListCommandEventArgs)
      ImageDataList.EditItemIndex = -1
	  FillDataList()
   end sub
    '***********************************************************
	sub ImageDataList_UpdateCommand(Sender as object, e as DataListCommandEventArgs)
            Dim Id As String = CType(e.Item.FindControl("EditID"), Label).Text
            Dim EditedNamn As String = CType(e.Item.FindControl("EditName"), TextBox).Text
            Dim EditedLocation As String = CType(e.Item.FindControl("EditLocation"), TextBox).Text
			'response.write(Id & "---" & EditedNamn & "---" & EditedLocation & "<br>")
            Dim strSQL2 As String = "UPDATE galleries SET " & _
                "location_name = '" & EditedNamn & "', " & _
                "location_url = '" & EditedLocation & "' " & _
                "WHERE location_ID = " & Id
				'response.write(strSQL2 & "<br>")
			Try
                Dim myCommand2 As New OleDbCommand(strSQL2, myConnection)
                myConnection.Open()
					Dim numRowsAffected As Integer = 0
					numRowsAffected = myCommand2.ExecuteNonQuery()
                myConnection.Close()
				'response.write(numRowsAffected)
                If numRowsAffected <> 0 Then
                    lblMessage.Text = "Redigerad!"
                Else
                    lblMessage.Text = "INTE redigerad!"
			    End If
				
			    ImageDataList.EditItemIndex = -1
                FillDataList()
            Catch ex As Exception
                '# Errorhantering, logga felmeddelande !!
                lblMessage.Text = ex.ToString
            End Try
   end sub
    '***********************************************************
   sub ImageDataList_DeleteCommand(Sender as object, e as DataListCommandEventArgs)
            Dim Id As String = CType(e.Item.FindControl("EditID"), Label).Text
            Dim strSQL4 As String = "DELETE * FROM galleries WHERE location_ID = " & Id
			Try
                Dim myCommand4 As New OleDbCommand(strSQL4, myConnection)
                myConnection.Open()
                Dim numRowsAffected As Integer = 0
			    numRowsAffected = myCommand4.ExecuteNonQuery()
                myConnection.Close()
                If numRowsAffected <> 0 Then
                    lblMessage.Text = "Inlägget togs bort!"
                Else
                    lblMessage.Text = "Inlägget togs INTE bort!"
			    End If
                ImageDataList.EditItemIndex = -1
                FillDataList()
            Catch ex As Exception
                '# Errorhantering, logga felmeddelande !!
                lblMessage.Text = ex.Message
            End Try
   end sub
'***********************************************************
    Private Sub BtnAdd_Click(ByVal sender As Object, ByVal e As EventArgs)
            Dim TheNewName As String = NewName.Text
            Dim TheNewLocation As String = NewLocation.Text
    
            If TheNewName = "" Or TheNewLocation = "" Then
                lblMessage.Text = "Du måste skriva Namn & Sökväg !"
                FillDataList()
                Exit Sub
            End If
    
            Dim strSQL3 As String = "INSERT INTO galleries " & _
                "(location_name, location_url) VALUES (" & _
                "'" & TheNewName & "', " & _
                "'" & TheNewLocation & "')"
            Try
                Dim myCommand3 As New OleDbCommand(strSQL3, myConnection)
                myConnection.Open()
                Dim numRowsAffected As Integer = 0
				numRowsAffected = myCommand3.ExecuteNonQuery()
                myConnection.Close()
                If numRowsAffected <> 0 Then
                    lblMessage.Text = ""
	                FillDataList()
                    Response.Redirect("admin.aspx")
                Else
                    lblMessage.Text = "Inget tillagt!"
			    End If
            Catch ex As Exception
                '# Errorhantering, logga felmeddelande !!
                lblMessage.Text = ex.tostring
            End Try
    End Sub
    '***********************************************************
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Administration för Galleri</title>
    <!--<link href="myCSSstyle.css" rel="stylesheet" type="text/css">-->
</head>
<body>
	<form id="myForm" method="post" runat="server">
		<div align="left">
			Gallerier
			<table border="1">
				<tr><td colspan="2">Lägg till:</td></tr>
				<tr><td>Namn</td>
					<td><asp:TextBox id="NewName" runat="server"/></td>
				</tr>
				<tr><td>Sökväg</td>
					<td><asp:TextBox id="NewLocation" runat="server"/></td>
				</tr>
				<tr><td colspan="2"><asp:button id="BtnAdd" onclick="BtnAdd_Click" runat="server" Text="Lägg till"/></td></tr>
			</table>
		</div>
		<div align="center">
			<asp:label id="lblMessage" class="ErrorMessage" runat="server" />
		</div>
		<asp:datalist BorderWidth="0px" id="ImageDataList" runat="server" Width="700px"
		RepeatLayout="Table" RepeatDirection="Vertical" RepeatColumns="0" GridLines="None"
		HorizontalAlign="center"
		OnItemCommand="ImageDataList_ItemCommand"
		OnEditCommand="ImageDataList_EditCommand"
		OnCancelCommand="ImageDataList_CancelCommand"
		OnUpdateCommand="ImageDataList_UpdateCommand"
		OnDeleteCommand="ImageDataList_DeleteCommand">
			<ItemTemplate>
				<asp:Label id="lblID" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "location_ID")%>'/>
				<asp:Label id="lblName" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "location_name")%>'/>
				<asp:Label id="lblUrl" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "location_url")%>'/>
				<asp:LinkButton id="editEntry" Runat="server" Text="Redigera" CommandName="Edit"/>
			</ItemTemplate>
			<EditItemTemplate>
				<asp:Label id="EditID" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "location_ID")%>'/>
				<asp:TextBox id="EditName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "location_name")%>'/>
				<asp:TextBox id="EditLocation" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "location_url")%>'/>
				<asp:LinkButton id="lbtUpdate" runat="server" Text="Ändra" CommandName="Update"/>
				<asp:LinkButton id="lbtDelete" runat="server" Text="Ta Bort" CommandName="Delete"/>
				<asp:LinkButton id="lbtCancel" runat="server" Text="Avbryt" CommandName="Cancel"/>
			</EditItemTemplate>
		</asp:datalist>
	</form>
</body>
</html>
Medlem sedan sep. 20011 914 inlägg
#2
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
            [b]If not IsPostBack Then[/b]
               FillDataList()
            [b]End If[/b]
    End Sub
Medlem sedan mars 200490 inlägg
#3

:r visstja

tack tack

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)