[Solved] jQuery Ajax Error: Conversion failed when converting the nvarchar value to datatype int in ASP.Net

RichardSa
 
on Jul 11, 2022 11:33 PM
334 Views

Hi dharmendr,

I did exactly as you stated but I got another error.

[Solved] jQuery Ajax Error: Unknown WebMethod in ASP.Net

Ajax Error: Conversion failed when converting the nvarchar value to datatype int

<body style="background-color: #F5F5F5;">
    <form id="form1" runat="server">
        <asp:ScriptManager ID="script" runat="server"></asp:ScriptManager>
        <div class="wrapper">
            <div id="content" style="font-size: 10pt; width: 100%;">
                <div class="container" id="centered" style="margin: 0 auto; padding: 5px; font-family: Nunito;">
                    <div class="form-horizontal">
                        <h1 style="font-size: small; margin: 0 auto; color: red;">Document Details</h1>
                        <hr />
                        <div id="pdf_container"></div>
                    </div>
                </div>
            </div>
        </div>
    </form>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf_viewer.min.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
        $(function () {
            $.ajax({
                type: "POST",
                url: "Details.aspx/GetFile",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (r) {
                    LoadPdfFromBlob(r.d.Data);
                },
                error: function (r) {
                    alert(r.responseText);
                }
            });
        });
 
        var pdfjsLib = window['pdfjs-dist/build/pdf'];
        pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.worker.min.js';
        var pdfDoc = null;
        var scale = 1; //Set Scale for zooming PDF.
        var resolution = 1; //Set Resolution to Adjust PDF clarity.
 
        function LoadPdfFromBlob(blob) {
            //Read PDF from BLOB.
            pdfjsLib.getDocument({ data: blob }).promise.then(function (pdfDoc_) {
                pdfDoc = pdfDoc_;
 
                //Reference the Container DIV.
                var pdf_container = document.getElementById("pdf_container");
                pdf_container.innerHTML = "";
                pdf_container.style.display = "block";
 
                //Loop and render all pages.
                for (var i = 1; i <= pdfDoc.numPages; i++) {
                    RenderPage(pdf_container, i);
                }
            });
        };
        function RenderPage(pdf_container, num) {
            pdfDoc.getPage(num).then(function (page) {
                //Create Canvas element and append to the Container DIV.
                var canvas = document.createElement('canvas');
                canvas.id = 'pdf-' + num;
                ctx = canvas.getContext('2d');
                pdf_container.appendChild(canvas);
 
                //Create and add empty DIV to add SPACE between pages.
                var spacer = document.createElement("div");
                spacer.style.height = "20px";
                pdf_container.appendChild(spacer);
 
                //Set the Canvas dimensions using ViewPort and Scale.
                var viewport = page.getViewport({ scale: scale });
                canvas.height = resolution * viewport.height;
                canvas.width = resolution * viewport.width;
 
                //Render the PDF page.
                var renderContext = {
                    canvasContext: ctx,
                    viewport: viewport,
                    transform: [resolution, 0, 0, resolution, 0, 0]
                };
 
                page.render(renderContext);
            });
        };
    </script>
</body>

 

 [WebMethod(EnableSession = true)]
 public static object GetFile()
 {
     string fileName = String.Empty;
     byte[] bytes = null;
     string type = string.Empty;
     using (SqlConnection con = new SqlConnection("Data Source=N1NWPLSK12SQL-v02.shr.prod.ams1.secureserver.net;Initial Catalog=Quirver_DB;Persist Security Info=True;User ID=quirverT;Password=***********"))
     {
         using (SqlCommand cmd = new SqlCommand("SELECT * FROM tableinvoice WHERE Id = @Id", con))
         {
             cmd.Parameters.AddWithValue("@Id", HttpContext.Current.Session["RowIndex"]);
             con.Open();
             using (SqlDataReader dr = cmd.ExecuteReader())
             {
                 if (dr.Read())
                 {
                     fileName = dr["Name"].ToString();
                     bytes = (byte[])dr["Data"];
                     type = dr["ContentType"].ToString();
                 }
             }
             con.Close();
         }
     }
     return new { Name = fileName, Data = bytes, ContentType = type };
 }

 

Download FREE API for Word, Excel and PDF in ASP.Net: Download
dharmendr
 
on Jul 12, 2022 02:36 AM
RichardSa says:
using (SqlCommand cmd = new SqlCommand("SELECT * FROM tableinvoice WHERE Id = @Id", con))

 You are passing the file name. So you need to change the where condition with Name column instead of Id column.

 using (SqlCommand cmd = new SqlCommand("SELECT * FROM tableinvoice WHERE Name = @Name", con))

 

RichardSa says:
cmd.Parameters.AddWithValue("@Id", HttpContext.Current.Session["RowIndex"]);

Then

cmd.Parameters.AddWithValue("@Name", HttpContext.Current.Session["RowIndex"]);