Viewing source for recipe1315vb.aspx

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

    Protected Sub Page_Load(Sender As Object, E As EventArgs)
    
        If Not IsPostBack Then
    
            MasterDataGrid.SelectedIndex = 0
            BindMasterDataGrid()
            BindDetailDataGrid()
    
        End If
    
    End Sub
    
    Protected Sub MasterDataGrid_SelectedIndexChanged(Sender As Object, E As EventArgs)
        BindDetailDataGrid()
    End Sub
    
    Protected Sub MasterDataGrid_PageIndexChanged(Sender As Object, E As DataGridPageChangedEventArgs)
    
        If MasterDataGrid.SelectedIndex <> -1 Then
    
            MasterDataGrid.SelectedIndex = -1
            BindDetailDataGrid()
    
        End If
    
        MasterDataGrid.CurrentPageIndex = e.NewPageIndex
        BindMasterDataGrid()
    
    End Sub
    
    Protected Sub BindMasterDataGrid()
    
        Dim ConnectionString As String = "server=Localhost;database=pubs;trusted_connection=true"
        Dim CommandText As String = "select au_lname as [Last Name], au_fname as [First Name], Address, City, State from Authors order by [Last Name]"
        Dim objConnection As New SqlConnection(ConnectionString)
        Dim objCommand As New SqlDataAdapter(CommandText, objConnection)
    
        Dim objDataSet As New DataSet()
    
        Try
            objCommand.Fill(objDataSet)
    
            MasterDataGrid.DataSource = objDataSet.Tables(0).DefaultView
            MasterDataGrid.DataBind()
    
        Catch SqlEx As SqlException
            ErrorLabel.Text = SqlEx.Message
        Catch Ex As Exception
            ErrorLabel.Text = Ex.Message
        End Try
    
    End Sub
    
    Protected Sub BindDetailDataGrid()
    
        If MasterDataGrid.SelectedIndex <> -1 Then
    
            Dim ConnectionString As String = "server=Localhost;database=pubs;trusted_connection=true"
            Dim FilterValue As String
            Try
				FilterValue = CStr(MasterDataGrid.DataKeys(MasterDataGrid.SelectedIndex)).Replace("'", "''")
			Catch
				FilterValue = ""
			End Try
            Dim CommandText As String = "select title as Title, price as Price, ytd_sales as [YTD Sales] from titleview where au_lname = '" & FilterValue & "'"
    
            Try
                Dim objConnection As New SqlConnection(ConnectionString)
                Dim objCommand As New SqlCommand(CommandText, objConnection)
    
                objConnection.Open()
    
                DetailsDataGrid.DataSource = objCommand.ExecuteReader(CommandBehavior.CloseConnection)
                DetailsDataGrid.DataBind()
                objConnection.Close()
                
            Catch SqlEx As SqlException
                ErrorLabel.Text = SqlEx.Message
            Catch Ex As Exception
                ErrorLabel.Text = Ex.Message
            End Try
    
        End If
    End Sub
</script>
<html>
	<head>
	</head>
	<body>
		<form runat="server">
			<p>
				<asp:datagrid id="MasterDataGrid" runat="server" OnPageIndexChanged="MasterDataGrid_PageIndexChanged" PageSize="6" AllowPaging="True" OnSelectedIndexChanged="MasterDataGrid_SelectedIndexChanged" DataKeyField="Last Name" Width="100%">
					<Columns>
						<asp:ButtonColumn Text="Show details" CommandName="Select" />
					</Columns>
				</asp:datagrid>
				<br />
				<asp:datagrid id="DetailsDataGrid" runat="server" EnableViewState="False" Width="100%" />
			</p>
			<p>
				<asp:Label id="ErrorLabel" runat="server" />
			</p>
		</form>
	</body>
</html>