Results 1 to 3 of 3

Thread: Error when i try to search record

  1. #1

    Thread Starter
    Member
    Join Date
    Sep 2020
    Location
    Kampala
    Posts
    35

    Error when i try to search record

    Please help iam getting error undefined when i try to search record please help

    Name:  error screen.jpg
Views: 217
Size:  17.3 KB

    Code:
    Imports System.IO
    Imports System.Data
    Imports System.Configuration
    Imports System.Data.SqlClient
    Public Class SearchUploadPhoto
        Inherits System.Web.UI.Page
        Dim constr As String = ConfigurationManager.ConnectionStrings("SMIS2022ConnectionString").ConnectionString
        Private Shared PageSize As Integer = 25
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
                BindDummyRow()
    
    
    
    
                '  SearchGrid.DataSource = GetData("SELECT * FROM dbo.P3P7 WHERE (Photo IS NOT NULL)")
                ' SearchGrid.DataBind()
            End If
        End Sub
        Protected Sub Upload(ByVal sender As Object, ByVal e As EventArgs) Handles btnUpload.Click
            Dim company As String = Request.Form(admn.UniqueID)
            Dim k As String = company
            Dim f As String = admn0.Text
            If String.IsNullOrEmpty(company) Then
                ScriptManager.RegisterStartupScript(Me, Me.GetType(), "askConfirmk", "alert('Please you Must Search Student and Click on Select to Upload   ... !!')", True)
    
                Exit Sub
            End If
    
            If FileUpload1.HasFile Then
    
                Dim fs As Stream = FileUpload1.PostedFile.InputStream
                Dim br As New BinaryReader(fs)
                Dim bytes As Byte() = br.ReadBytes(DirectCast(fs.Length, Long))
                Using Cont As New SqlConnection(constr)
                    Cont.Open()
                    Using cmd As New SqlCommand
                        cmd.Connection = Cont
                        cmd.CommandType = CommandType.StoredProcedure
                        cmd.CommandText = "GetPhotoinsertUPDATE"
                        cmd.Parameters.Add("@p", SqlDbType.Binary).Value = bytes
                        cmd.Parameters.AddWithValue("@ct", company)
                        cmd.ExecuteNonQuery()
                        Cont.Close()
                        'loaddata()
                        ' Exit Sub
                    End Using
                End Using
    
                ScriptManager.RegisterStartupScript(Me, Me.GetType(), "askConfirmk", "alert('Photo Uploaded Successfully   ... !!')", True)
                Exit Sub
            End If
    
            Response.Redirect(Request.Url.AbsoluteUri)
        End Sub
        Private Sub loaddata()
    
            Dim constr As String = ConfigurationManager.ConnectionStrings("SMIS2022ConnectionString").ConnectionString
            Using conn As SqlConnection = New SqlConnection(constr)
                Using sda As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM P3P7 WHERE (Photo IS NOT NULL)", conn)
                    Dim dt As DataTable = New DataTable()
                    sda.Fill(dt)
                    SearchGrid.DataSource = dt
                    SearchGrid.DataBind()
                End Using
            End Using
    
    
        End Sub
    
        Protected Sub OnRowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
            If e.Row.RowType = DataControlRowType.DataRow Then
    
                Dim dr As DataRowView = CType(e.Row.DataItem, DataRowView)
                If Not IsDBNull(dr("Photo")) Then
                    Dim imageUrl As String = "data:image/bmp;base64," & Convert.ToBase64String(CType(dr("Photo"), Byte()))
                    CType(e.Row.FindControl("Image1"), Image).ImageUrl = imageUrl
    
                End If
            End If
        End Sub
    
    
        Private Sub BindDummyRow()
            Dim dummy As DataTable = New DataTable()
            dummy.Columns.Add("ADMNO")
            dummy.Columns.Add("Name")
            dummy.Columns.Add("Class")
            dummy.Columns.Add("Stream")
            dummy.Columns.Add("sex")
            dummy.Columns.Add("Status")
            dummy.Columns.Add("studenttype")
            dummy.Columns.Add("House")
            dummy.Columns.Add("Photo")
            dummy.Columns.Add("autofield")
            dummy.Rows.Add()
            SearchGrid.DataSource = dummy
            SearchGrid.DataBind()
            'sample()
            loaddata()
        End Sub
        <System.Web.Services.WebMethod()>
        Public Shared Function GetCustomers(ByVal searchTerm As String, ByVal pageIndex As Integer) As String
            Dim query As String = "[GetCustomers_Pager2022]"
            Dim cmd As SqlCommand = New SqlCommand(query)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.AddWithValue("@SearchTerm", searchTerm)
            cmd.Parameters.AddWithValue("@PageIndex", pageIndex)
            cmd.Parameters.AddWithValue("@PageSize", 25)
            cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 4).Direction = ParameterDirection.Output
            Return GetData(cmd, pageIndex).GetXml()
    
        End Function
        Private Shared Function bkGetData(ByVal cmd As SqlCommand, ByVal pageIndex As Integer) As DataSet
            Dim strConnString As String = ConfigurationManager.ConnectionStrings("SMIS2022ConnectionString").ConnectionString
            Using con As SqlConnection = New SqlConnection(strConnString)
                Using sda As SqlDataAdapter = New SqlDataAdapter()
                    cmd.Connection = con
                    sda.SelectCommand = cmd
                    Using ds As DataSet = New DataSet()
                        sda.Fill(ds, "Customers")
                        Dim dt As DataTable = New DataTable("Pager")
                        dt.Columns.Add("PageIndex")
                        dt.Columns.Add("PageSize")
                        dt.Columns.Add("RecordCount")
                        dt.Rows.Add()
                        dt.Rows(0)("PageIndex") = pageIndex
                        dt.Rows(0)("PageSize") = 10
                        dt.Rows(0)("RecordCount") = cmd.Parameters("@RecordCount").Value
                        ds.Tables.Add(dt)
                        Return ds
                    End Using
                End Using
            End Using
    
        End Function
    
    
        Private Shared Function GetData(ByVal cmd As SqlCommand, ByVal pageIndex As Integer) As DataSet
            Dim strConnString As String = ConfigurationManager.ConnectionStrings("SMIS2022ConnectionString").ConnectionString
            Using con As SqlConnection = New SqlConnection(strConnString)
                Using sda As SqlDataAdapter = New SqlDataAdapter()
                    cmd.Connection = con
                    sda.SelectCommand = cmd
                    Using ds As DataSet = New DataSet()
                        sda.Fill(ds, "Files")
                        Dim dt As DataTable = New DataTable("Pager")
                        dt.Columns.Add("PageIndex")
                        dt.Columns.Add("PageSize")
                        dt.Columns.Add("RecordCount")
                        dt.Rows.Add()
                        dt.Rows(0)("PageIndex") = pageIndex
                        dt.Rows(0)("PageSize") = PageSize
                        dt.Rows(0)("RecordCount") = cmd.Parameters("@RecordCount").Value
                        ds.Tables("Files").Columns.Add("Image")
                        For i As Integer = 0 To ds.Tables("Files").Rows.Count - 1
    
                            If Not IsDBNull(ds.Tables("Files").Rows(i)("Photo")) Then
                                Dim imgBytes As Byte() = CType(ds.Tables("Files").Rows(i)("Photo"), Byte())
                                Dim base64String As String = Convert.ToBase64String(imgBytes, 0, imgBytes.Length)
                                ds.Tables("Files").Rows(i)("Image") = "data:image/png;base64," & base64String
                            End If
                        Next
    
                        ds.Tables.Add(dt)
                        Return ds
                    End Using
                End Using
            End Using
        End Function
    
    
        Protected Sub GetOriginalImage(sender As Object, e As EventArgs)
            Dim id As String = TryCast(sender, ImageButton).ImageUrl.Split("="c)(TryCast(sender, ImageButton).ImageUrl.Split("="c).Length - 1)
            Dim text As String = (TryCast(sender, ImageButton)).ID
    
    
    
            If Not String.IsNullOrEmpty(id) Then
                Dim bytes As Byte() = DirectCast(GetData(Convert.ToString("SELECT Photo FROM P3P7 WHERE autofield =") & id).Rows(0)("Photo"), Byte())
                Dim base64String As String = Convert.ToBase64String(bytes, 0, bytes.Length)
                Image1.ImageUrl = Convert.ToString("data:image/bmp;base64,") & base64String
                Image1.Visible = True
            End If
            ClientScript.RegisterStartupScript(Me.[GetType](), "Popup", "ShowPopup();", True)
        End Sub
    
    
        Private Function GetData(query As String) As DataTable
            Dim dt As New DataTable()
            Dim constr As String = ConfigurationManager.ConnectionStrings("SMIS2022ConnectionString").ConnectionString
            Using con As New SqlConnection(constr)
                Using cmd As New SqlCommand(query)
                    Using sda As New SqlDataAdapter()
                        cmd.CommandType = CommandType.Text
                        cmd.Connection = con
                        sda.SelectCommand = cmd
                        sda.Fill(dt)
                    End Using
                End Using
                Return dt
            End Using
        End Function
    
    
    End Class
    Code:
    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="SearchUploadPhoto.aspx.vb" Inherits="SMIS2022WEB.SearchUploadPhoto" %>
    
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <script src="../Scripts/jquery-1.8.3.min.js"></script>
    <script src="../Scripts/ASPSnippets_Pager.min.js"></script>
        <title></title>
        <style type="text/css">
            .auto-style2 {
                width: 83%;
            }
            .auto-style3 {}
            .auto-style4 {
            }
            .auto-style5 {
                width: 34px;
            }
            .auto-style6 {
                width: 88px;
            }
            .auto-style7 {
                width: 123px;
            }
            .auto-style8 {
                width: 637px;
            }
            .auto-style9 {
                width: 56%;
            }
        </style>
    
        
    </head>
    
          <script type="text/javascript">
            $(function () {
                GetCustomers(1);
                $("body").on("keyup", "[id*=txtSearch]", function () {
                    GetCustomers(parseInt(1));
                });
                $("body").on("click", ".Pager .page", function () {
                    GetCustomers(parseInt($(this).attr('page')));
                });
            });
     
            function SearchTerm() {
                return jQuery.trim($("[id*=txtSearch]").val());
            };
            function GetCustomers(pageIndex) {
                $.ajax({
                    type: "POST",
                    url: "SearchUploadPhoto.aspx/GetCustomers",
                    data: '{searchTerm: "' + SearchTerm() + '", pageIndex: ' + pageIndex + '}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: OnSuccess,
                    failure: function (response) {
                        alert(response.d);
                    },
                    error: function (response) {
                        alert(response.d);
                    }
                });
            }
            var row;
            function OnSuccess(response) {
                var xmlDoc = $.parseXML(response.d);
                var xml = $(xmlDoc);
                var customers = xml.find("Customers");
                if (row == null) {
                    row = $("[id*=SearchGrid] tr:last-child").clone(true);
                }
                var footer = $("[id*=SearchGrid] tr:last-child").clone(true);
                $("[id*=SearchGrid] tr").not($("[id*=SearchGrid] tr:first-child")).remove();
                if (customers.length > 0) {
                    $.each(customers, function () {
                        var customer = $(this);
                        $("td", row).eq(0).html($(this).find("ADMNO").text());
                        $("td", row).eq(1).html($(this).find("Name").text());
                        $("td", row).eq(2).html($(this).find("Class").text());
                        $("td", row).eq(3).html($(this).find("Stream").text());
                        $("td", row).eq(4).html($(this).find("SEX").text());
                        $("td", row).eq(7).html($(this).find("STATUS").text());
                        $("td", row).eq(5).html($(this).find("studenttype").text());
                        $("td", row).eq(6).html($(this).find("House").text());
                        $("td", row).eq(8).html("<img src='" + $(this).find("Photo").text() + "' alt='" + $(this).find("Name").text() + "' height='25px' width='25px' />");
                        $("td", row).eq(9).html("<a href='javascript:;' onclick='GetData(this)'>Select</a>");
                        $("[id*=SearchGrid]").append(row);
                        row = $("[id*=SearchGrid] tr:last-child").clone(true);
                    });
                    $("[id*=SearchGrid]").append(footer);
                    var pager = xml.find("Pager");
                    $(".Pager").ASPSnippets_Pager({
                        ActiveCssClass: "current",
                        PagerCssClass: "pager",
                        PageIndex: parseInt(pager.find("PageIndex").text()),
                        PageSize: parseInt(pager.find("PageSize").text()),
                        RecordCount: parseInt(pager.find("RecordCount").text())
                    });
     
                    $(".Name").each(function () {
                        var searchPattern = new RegExp('(' + SearchTerm() + ')', 'ig');
                        $(this).html($(this).text().replace(searchPattern, "<span class = 'highlight'>" + SearchTerm() + "</span>"));
                    });
                } else {
                    var empty_row = row.clone(true);
                    $("td:first-child", empty_row).attr("colspan", $("td", row).length);
                    $("td:first-child", empty_row).attr("align", "center");
                    $("td:first-child", empty_row).html("No records found for the search criteria.");
                    $("td", empty_row).not($("td:first-child", empty_row)).remove();
                    $("[id*=SearchGrid]").append(empty_row);
                }
            };
    
            function GetData(ele) {
                var row = $(ele).closest('tr');
                var id = $("td", row).eq(0).html();
                var name = $("td", row).eq(1).html();
                var classr = $("td", row).eq(2).html();
                var streamr = $("td", row).eq(3).html();
    
                $('[id*=hfId]').val(id);
                $('[id*=lblId]').html(id);
                $('[id*=Namesdata]').val(name);
                $('[id*=admn]').val(id);
                $('[id*=Classstream]').val(classr+streamr);
    
            }
               </script>
                           <script type = "text/javascript">
        function askConfirm(msg)
    {      alert(msg)
          }
     </script>
    
         <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/jquery-ui.js"></script>
        <link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/themes/blitzer/jquery-ui.css" />
        <script type="text/javascript">
            function ShowPopup() {
                $(function () {
                    $("#dialog").dialog({
                        title: "Original Image",
                        buttons: {
                            Close: function () {
                                $(this).dialog('close');
                            }
                        },
                        modal: true
                    });
                });
            }
        </script>
    <body style="background-color: #66CCFF">
          <form id="form1" runat="server">
    <asp:FileUpload ID="FileUpload1" runat="server" />
    <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="Upload" />
    <hr />
                          <asp:Image ID="Image1" runat="server" Height="70px" Width="86px" />
              <asp:Panel ID="Panel1" runat="server" BorderStyle="Double" Width="673px" Height="27px">
                  <table class="auto-style2">
                      <tr>
                          <td class="auto-style5">
                              Search</td>
                          <td class="auto-style5">
                              <asp:TextBox ID="txtSearch" runat="server" Width="92px"></asp:TextBox>
                          </td>
                          <td class="auto-style6">Admno</td>
                          <td class="auto-style6">
                              <asp:TextBox ID="admn" runat="server" Width="111px" ReadOnly="True"></asp:TextBox>
                          </td>
                          <td class="auto-style4">Name</td>
                          <td class="auto-style7">
                              <asp:TextBox ID="Namesdata" runat="server" Width="160px" ReadOnly="True"></asp:TextBox>
                          </td>
                          <td class="auto-style3">Class</td>
                          <td class="auto-style3">
                              <asp:TextBox ID="Classstream" runat="server" Width="79px" ReadOnly="True"></asp:TextBox>
                          </td>
                      </tr>
                  </table>
              </asp:Panel>
                              <asp:TextBox ID="admn0" runat="server" Width="111px" ReadOnly="True" Visible="False"></asp:TextBox>
              <br />
              <table class="auto-style9">
                  <tr>
                      <td class="auto-style8">
    <asp:GridView ID="SearchGrid" runat="server" AutoGenerateColumns="False" Width="864px"  >
        <Columns>
            <asp:TemplateField HeaderText="ADMNO">
                <EditItemTemplate>
                    <asp:TextBox ID="admno" runat="server" Text='<%# Eval("ADMNO") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("ADMNO") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
             <asp:TemplateField HeaderText="Student Name">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
    
            <asp:TemplateField HeaderText="Class">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Class") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label3" runat="server" Text='<%# Bind("Class") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Stream">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Stream") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label4" runat="server" Text='<%# Bind("Stream") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Sex">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("Sex") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label7" runat="server" Text='<%# Bind("Sex") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Student Type">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("studenttype") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label5" runat="server" Text='<%# Bind("studenttype") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Colour">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("House") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label6" runat="server" Text='<%# Bind("House") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            
    
            <asp:TemplateField HeaderText="Status">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox8" runat="server" Text='<%# Bind("STATUS") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label8" runat="server" Text='<%# Bind("STATUS") %>'></asp:Label>
                        
                </ItemTemplate>
    
               
                    </asp:TemplateField>
    
               <asp:ImageField DataImageUrlField="Photo" HeaderText="Photo">
            </asp:ImageField>
    
               <asp:ButtonField CommandName="Select" HeaderText="Select" Text="Select" />
                            
        </Columns>
    </asp:GridView>
                          <div id="dialog" style="display: none; height: auto; width: auto" align="center">
                <asp:Image ID="Image2" runat="server" Visible="false" Height="200px" Width="200px" />
            </div>
    
                      </td>
                      <td>
                          &nbsp;</td>
                  </tr>
                  <tr>
                      <td colspan="2">
    
                      </td>
                  </tr>
              </table>
              <table class="ui-accordion">
                  <tr>
                   
                      <td>
                          <asp:TextBox ID="Names" runat="server" Width="167px"></asp:TextBox>
                      </td>
                  </tr>
                  </table>
        </form>
    </body>
    </html>
    sqlcode
    Code:
    ALTER PROCEDURE [dbo].[GetCustomers_Pager2022]
          @PageIndex INT = 1
          ,@PageSize INT = 50
          ,@RecordCount INT OUTPUT,
    @SearchTerm nvarchar(200)
    AS
    BEGIN
    
          SET NOCOUNT ON;
          SELECT IDENTITY(INT,1,1) AS RowNumber
          ,[ADMNO]
          ,[Name]
          ,[Class]
          ,[Stream]
          ,[House]
          ,studenttype
    	  ,[STATUS]
           ,[SEX],Regno,autofield,Photo
               INTO #Results
          FROM P3P7
           WHERE     ([Name] LIKE @SearchTerm  or [Name] LIKE '%'+@SearchTerm+'%' or [Name] LIKE '%' + @SearchTerm or [Name] LIKE @SearchTerm + '%') OR @SearchTerm = '' OR @SearchTerm = ''
          SELECT @RecordCount = COUNT(*)
          FROM #Results
                
          SELECT * FROM #Results
          WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
          
          DROP TABLE #Results
    END

  2. #2
    Super Moderator dday9's Avatar
    Join Date
    Mar 2011
    Location
    South Louisiana
    Posts
    11,415

    Re: Error when i try to search record

    Where exactly is this happening? My guess is that it is failing in your GetCustomers method because you're calling alert and assuming that response.d is defined in both instances. Try changing that to the following:
    Code:
    const GetCustomers = pageIndex => {
      const searchTerm = SearchTerm();
      $.post('SearchUploadPhoto.aspx/GetCustomers', { searchTerm, pageIndex })
        .then(OnSuccess)
        .fail(response => {
          console.error(response);
          alert('Something went wrong getting the customers');
        });
    }
    After you rerun your code, have your developer tools open and respond with what gets printed to the console.
    Last edited by dday9; Aug 21st, 2023 at 11:39 AM.
    "Code is like humor. When you have to explain it, itís bad." - Cory House
    VbLessons | Code Tags | Sword of Fury - Jameram

  3. #3
    Super Moderator jmcilhinney's Avatar
    Join Date
    May 2005
    Location
    Sydney, Australia
    Posts
    109,806

    Re: Error when i try to search record

    There's loads of code there and absolutely no e4xplanation of what you're trying to achieve, what you expect and what actually happens beyond a specific alert in JS. Please provide a FULL and CLEAR explanation of the problem, ensuring that you have actually debugged your code and that the VB part at least is doing exactly what you expect. If the VB isn't doing what it's supposed to, what's the point even looking at the ASPX page?

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width