Detecting concurrency errors after updating data (VB)

Thursday, July 30th, 2009

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Protected Sub SqlDataSource1_Updated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)
        If (e.AffectedRows > 0) Then
            Message.Text = "The record has been updated"
        Else
            Message.Text = "Possible concurrency violation"
        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:SqlDataSource ID="SqlDataSource1" 
                           Runat="server" 
                           SelectCommand="SELECT * FROM [Customers] WHERE ([CustomerID] = @CustomerID)"
                           ConnectionString="<%$ ConnectionStrings:AppConnectionString1 %>"
                           DataSourceMode="DataSet"
                           ConflictDetection="CompareAllValues" 
                           OnUpdated="SqlDataSource1_Updated">
            <SelectParameters>
                <asp:QueryStringParameter Name="CustomerID" 
                                          QueryStringField="id" 
                                          Type="String">
                </asp:QueryStringParameter>
            </SelectParameters>
        </asp:SqlDataSource>
        <asp:Label ID="Message" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>

 

Deletion using SqlDataSource Control

Tuesday, July 7th, 2009

<%@ Page Language="C#" %>
<script runat="server">
    void deptSource_Deleted(object sender,SqlDataSourceStatusEventArgs e)
    {
      if (e.Exception == null)
      {
        if (e.AffectedRows == 1)
        {
          lblResult.Text = "Record deleted successfully.";
        }
        else
        {
          lblResult.Text = "An error occurred during the delete operation.";
        }
      }
      else
      {
        lblResult.Text = "An error occurred while attempting to delete the row." + e.Exception.Message;
        e.ExceptionHandled = true;
      }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Deletion using SqlDataSource Control</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>        
        <asp:SqlDataSource ID="deptSource" runat="server"
            ProviderName="System.Data.SqlClient" 
            ConnectionString="<%$ ConnectionStrings:AdventureWorks %>"
            SelectCommand="Select DepartmentID, Name, GroupName, ModifiedDate from HumanResources.Department"
            DeleteCommand="Delete from HumanResources.Department Where DepartmentID=@original_DepartmentID"            
            OldValuesParameterFormatString="original_{0}" OnDeleted="deptSource_Deleted">
            <DeleteParameters>                
                <asp:Parameter Type="Int32" Name="DepartmentID"></asp:Parameter>
            </DeleteParameters>
        </asp:SqlDataSource>
        <asp:GridView ID="deptView" 
            AutoGenerateColumns="False" 
            runat="server" 
            DataSourceID="deptSource"
            HeaderStyle-HorizontalAlign="Center" 
            HeaderStyle-Font-Bold="True"
            HeaderStyle-BackColor="blue" 
            HeaderStyle-ForeColor="White"
            DataKeyNames="DepartmentID">
            <Columns>
                <asp:TemplateField HeaderText="Delete">
                    <ItemTemplate>
                        <asp:Button ID="btnDelete" Text="Delete" runat="server"
                            OnClientClick="return confirm(’Are you sure you want to delete this record?’);"
                            CommandName="Delete" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField HeaderText="DepartmentID" DataField="DepartmentID" />
                <asp:BoundField HeaderText="Department Name" DataField="Name" />
                <asp:BoundField HeaderText="Group Name" DataField="GroupName" />
                <asp:BoundField HeaderText="Last Modified Date" DataField="ModifiedDate" />
            </Columns>
        </asp:GridView>            
        <asp:Label ID="lblResult" runat="server" ForeColor="DarkRed"/>
    </div>
    </form>
</body>
</html>

 

Catch data binding exception (VB.net)

Saturday, June 27th, 2009

<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.Sqlclient" %>
<script runat="server">

  Sub Button1_Click(sender As Object, e As EventArgs)
       Dim conn As New SqlConnection("Server=foo;Database=pubs;Trusted_Connection=true") 
       Dim cmd As New SqlCommand("select * from authors", conn)

       Try
         Conn.Open()
         DataGrid1.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection)
         DataGrid1.DataBind()
       Catch ex As Exception
         Label1.Text = "Could not connect to the database - " & _
                     "please try again later."
       End Try
    End Sub

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Button"></asp:Button>
        <asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
        <asp:Label id="Label1" runat="server">Label</asp:Label>
        <!– Insert content here –>
    </form>
</body>
</html>

           
       

asp:datalist: repeat column, repeat directions, gridlines,

Wednesday, June 24th, 2009

<%@ Page Language=VB Debug=true %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OLEDB" %>
<script runat=server>
Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
    If Not IsPostBack Then
        Dim DBConn as OleDbConnection
        Dim DBCommand As OleDbDataAdapter
        Dim DSPageData as New DataSet
        DBConn = New OleDbConnection( _
            "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
            & "DATA SOURCE=" _
            & Server.MapPath("EmployeeDatabase.mdb;"))
        DBCommand = New OleDbDataAdapter _
            ("Select FirstName, LastName " _
            & "From Employee " _
            & "Order By FirstName", DBConn)
        DBCommand.Fill(DSPageData, _
            "Employee")
        dlDepts.DataSource = _
            DSPageData.Tables("Employee").DefaultView
        dlDepts.DataBind()
    End If
End Sub
</SCRIPT>
<HTML>
<HEAD>
<TITLE>Creating a Basic DataList Control</TITLE>
</HEAD>
<Body LEFTMARGIN="40">
<form runat="server">
<BR><BR>
<asp:datalist 
    id="dlDepts" 
    runat="server" 
    repeatcolumns=2
    repeatdirection="Vertical"
    repeatlayout="table"
    gridlines="Both"
    backcolor="lightyellow"
    forecolor="darkred"
    borderwidth=3
    bordercolor="darkgreen"
>
    <headerstyle
        backcolor="darkred"
        forecolor="lightyellow"
        font-bold="true"
    />
    <headertemplate>
        Below is a list of all the employees.
    </headertemplate>
    <itemtemplate>
        <%# "<B>Department:</B> " _
            & DataBinder.Eval(Container.DataItem, "FirstName") _
            & "<BR>" _
            & DataBinder.Eval(Container.DataItem, "LastName") 
        %>
    </itemtemplate>
    <alternatingitemstyle
        backcolor="lightgreen"
        forecolor="darkblue"
    />
    <alternatingitemtemplate>
        <%# "<B>Department:</B> " _
            & DataBinder.Eval(Container.DataItem, "FirstName") _
            & "<BR>" _
            & DataBinder.Eval(Container.DataItem, "LastName") 
        %>
    </alternatingitemtemplate>
    <separatortemplate>
        ***
    </separatortemplate>
    <footerstyle
        backcolor="darkred"
        forecolor="lightyellow"
        font-bold="true"
    />
    <footertemplate>
        No more records found.
    </footertemplate>
</asp:datalist>
</form>
</BODY>
</HTML>