Hi
I am getting creasy: I ca´nt let my code to update the changes I make in
the edit-form, Does anyone see why?
Thanks in advance
----
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Page Language="VB" Debug="true" %>
<html>
<script language="VB" runat="server">
Dim MyConnection As SqlConnection
Sub Page_Load(Sender As Object, E As EventArgs)
'MyConnection = New SqlConnection("server=(local)
\NetSDK;database=pubs;Trusted_Connection=yes")
MyConnection = New SqlConnection
("server=144.24.14.107;database=FrasseTest;UID=sa")
If Not (IsPostBack)
BindGrid()
End If
End Sub
Sub MyDataGrid_Edit(Sender As Object, E As DataGridCommandEventArgs)
MyDataGrid.EditItemIndex = CInt(E.Item.ItemIndex)
BindGrid()
End Sub
Sub MyDataGrid_Cancel(Sender As Object, E As DataGridCommandEventArgs)
MyDataGrid.EditItemIndex = -1
BindGrid()
End Sub
Sub MyDataGrid_Update(Sender As Object, E As DataGridCommandEventArgs)
Dim DS As DataSet
Dim MyCommand As SqlCommand
Dim UpdateCmd As String = "UPDATE tblusers SET USERID = @USERID,
förnamn = @förnamn, efternamn = @efternamn, adress = " _
& " @adress, postnr = @postnr, stad = @stad, mobil = @mobil,
telefon = @telefon where USERID = @USERID"
MyCommand = New SqlCommand(UpdateCmd, MyConnection)
MyCommand.Parameters.Add(New SqlParameter("@USERID",
SqlDbType.NVarChar, 10))
MyCommand.Parameters.Add(New SqlParameter("@förnamn",
SqlDbType.NVarChar, 15))
MyCommand.Parameters.Add(New SqlParameter("@efternamn",
SqlDbType.NVarChar, 18))
MyCommand.Parameters.Add(New SqlParameter("@Adress",
SqlDbType.NVarChar, 20))
MyCommand.Parameters.Add(New SqlParameter("@postnr",
SqlDbType.NChar, 8))
MyCommand.Parameters.Add(New SqlParameter("@stad",
SqlDbType.NVarChar, 12))
MyCommand.Parameters.Add(New SqlParameter("@mobil",
SqlDbType.NVarChar,12))
MyCommand.Parameters.Add(New SqlParameter("@telefon",
SqlDbType.NChar, 12))
MyCommand.Parameters("@USERID").Value = MyDataGrid.DataKeys(CInt
(E.Item.ItemIndex))
Dim Cols As String() =
{"@USERID","@förnamn","@efternamn","@adress","@postnr","@stad","@mobil","@t
elefon"}
Dim NumCols As Integer = E.Item.Cells.Count
MyCommand.Connection.Open()
Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "<b>Record Updated</b><br>" &
UpdateCmd.ToString()
MyDataGrid.EditItemIndex = -1
Catch Exp As SQLException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: A record already exists with
the same primary key"
Else
Message.InnerHtml = "ERROR: Could not update record,
please ensure the fields are correctly filled out"
End If
Message.Style("color") = "red"
End Try
MyCommand.Connection.Close()
BindGrid()
End Sub
Sub MyDataGrid_ItemDataBound(Sender As Object, E As
DataGridItemEventArgs)
If (e.Item.ItemType = ListItemType.EditItem) Then
Dim i As Integer
For i = 0 To e.Item.Controls.Count-1
Try
If (e.Item.Controls(i).Controls(0).GetType().ToString
() = "System.Web.UI.WebControls.TextBox") Then
Dim tb As TextBox
tb = e.Item.Controls(i).Controls(0)
tb.Text = Server.HtmlDecode(tb.Text)
End If
Catch
End Try
Next
End If
End Sub
Sub BindGrid()
Dim DS As DataSet
Dim MyCommand As SqlDataAdapter
MyCommand = new SqlDataAdapter("select * from tblusers",
MyConnection)
DS = new DataSet()
MyCommand.Fill(DS, "tblusers")
MyDataGrid.DataSource=DS.Tables("tblusers").DefaultView
MyDataGrid.DataBind()
End Sub
</script>
<body style="font: 10pt verdana">
<form runat="server">
<h3><font face="Verdana">Updating a Row of Data w/ Read-Only
Column</font></h3>
<span id="Message" EnableViewmobil="false" style="font: arial 11pt;"
runat="server"/><p>
<ASP:DataGrid id="MyDataGrid" runat="server"
Width="800"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
OnEditCommand="MyDataGrid_Edit"
OnCancelCommand="MyDataGrid_Cancel"
OnUpdateCommand="MyDataGrid_Update"
DataKeyField="USERID"
AutoGenerateColumns="false"
OnItemDataBound="MyDataGrid_ItemDataBound"
>
<Columns>
<asp:EditCommandColumn EditText="Edit" CancelText="Cancel"
UpdateText="Update" ItemStyle-Wrap="false"/>
<asp:BoundColumn HeaderText="USERID" SortExpression="USERID"
ReadOnly="True" DataField="USERID" ItemStyle-Wrap="false"/>
<asp:BoundColumn HeaderText="förnamn" SortExpression="förnamn"
DataField="förnamn"/>
<asp:BoundColumn HeaderText="efternamn" SortExpression="efternamn"
DataField="efternamn"/>
<asp:BoundColumn HeaderText="adress" SortExpression="adress"
DataField="adress"/>
<asp:BoundColumn HeaderText="postnr" SortExpression="postnr"
DataField="postnr"/>
<asp:BoundColumn HeaderText="stad" SortExpression="stad"
DataField="stad"/>
<asp:BoundColumn HeaderText="mobil" SortExpression="mobil"
DataField="mobil"/>
<asp:BoundColumn HeaderText="telefon" SortExpression="telefon"
DataField="telefon"/>
</Columns>
</ASP:DataGrid>
</form>
</body>
</html>