martes, 3 de noviembre de 2015

Patrón Factoría de métodos en .net

Un patrón factoría nos sirve para canalizar todas las creaciones de objetos en un solo punto. Esto es útil para un diseño robusto de nuestro sistema y ágil al cambio.
El patrón factoría se puede combinar con el patrón singleton ya que es más cómodo su uso y útil su forma de usar. En este ejemplo pondremos un factoría sin singleton.
Decir que el patrón factoría es del tipo patrones creacionales, que este tipo de patrón abstrae la forma de crear objetos concretos, dando así un soporte para crear objetos de forma abstracta.
Para empezar un patrón factoría debe cumplir:
– Una función o método el cual se encarga de crear objetos de un tipo dado.
– No es obligatorio pero si recomendable que dicha función o método devuelva una abstracción (interfaz o clase abstracta).
Imaginemos que una tienda de pizzas requiere de un software que necesita que tengan una serie de productos (pizzas variadas). Como buenos diseñadores que somos, la creación de objetos de pizzas se podrá hacer desde cualquier parte el proyecto, pero el problema es que hay muchos tipos de pizzas. El crear cada pizza de cada tipo en distintos puntos del programa sería lo primero que pensaríamos, pero… ¿si en vez de eso usamos sentido común y aplicamos el factoría?, esto nos permitiría que dado un nuevo producto o un cambio en alguno de ellos, que solo cambiemos en un solo lugar, teniendo más controlado dicho código. Incluso si os dais cuenta la agilidad al cambio es mucho mayor que ir cambiando todas las posibles apariciones de nuestras pizzas por el código.
Pues bien, el factoría se encargaría de crear todo tipo de pizzas y las ofrecería a todos los posibles puntos del programa.
Nuestro ejemplo sería el siguiente:
– La interfaz IPizza:
    interface IPizza
    {
        void quienSoy();
    }
– Las pizzas concretas:
    public class PizzaBarbacoa: IPizza
    {
        #region Miembros de IPizza

        public void quienSoy()
        {
            Console.WriteLine("Soy una pizza de Barbacoa");
        }

        #endregion
    }
    public class PizzaMargarita: IPizza
    {
        #region Miembros de IPizza

        public void quienSoy()
        {
            Console.WriteLine("Soy una pizza de Margarita");
        }

        #endregion
    }
    public class PizzaPepperoni: IPizza
    {
        #region Miembros de IPizza

        public void quienSoy()
        {
            Console.WriteLine("Soy una pizza de Pepperoni");
        }

        #endregion
    }
– La factoría en cuestión:
    public class PizzaFactory
    {
        public enum tipoPizza
        {
            Pepperoni,Margarita,Barbacoa
        }

        public IPizza getPizza(tipoPizza tipo)
        {
            switch (tipo)
            {
                case tipoPizza.Barbacoa:
                    return new PizzaBarbacoa();
                    break;
                case tipoPizza.Margarita:
                    return new PizzaMargarita();
                    break;
                case tipoPizza.Pepperoni:
                    return new PizzaPepperoni();
                    break;
                default:
                    return new PizzaBarbacoa();
            }
        }
    }
– Un pequeño test:
    public class Test
    {
        public void testPizza()
        { 
            //ejemplo no usando factoría
            IPizza pizza1 = new PizzaBarbacoa();
            pizza1.quienSoy();
            IPizza pizza2 = new PizzaMargarita();
            pizza2.quienSoy();
            IPizza pizza3 = new PizzaPepperoni();
            pizza3.quienSoy();
            IPizza pizza4 = new PizzaBarbacoa();
            pizza4.quienSoy();
            IPizza pizza5 = new PizzaMargarita();
            pizza5.quienSoy();

            //ejemplo usando factoría
            PizzaFactory factory = new PizzaFactory();
            IPizza pizza6 = factory.getPizza(PizzaFactory.tipoPizza.Barbacoa);
            pizza6.quienSoy();
            IPizza pizza7 = factory.getPizza(PizzaFactory.tipoPizza.Margarita);
            pizza7.quienSoy();
            IPizza pizza8 = factory.getPizza(PizzaFactory.tipoPizza.Pepperoni);
            pizza8.quienSoy();
        }
    }
Como veis la forma de uso y sus ventajas son mejores. Espero que os sirva!!. Hasta luego!



Fuentes:

http://jorge.queideas.com/index.php/2010/08/27/patron-factoria/

http://elcodigoyyo.blogspot.com.co/2010/01/factoria-abstracta-en-acceso-datos-con.html

https://lalejogg.wordpress.com/2011/06/24/arquitectura-%E2%80%93-patrones-%E2%80%93-factory-factoria-o-fabrica-%E2%80%93-codigo-c/

lunes, 31 de agosto de 2015

AJAX jQuery en ASP.NET

Veamos un ejemplo práctico de como utilizar AJAX jQuery en aplicaciones ASP.Net.

jQuery AJAX, Ejemplo

jQuery Ajax
Nuestro ejemplo será muy simple, crearemos una página que contendrá 2 cajas de texto, donde introduciremos nuestro nombre y apellidos; y al pulsar el botón, se enviaran ambas cadenas al servidor vía AJAX, donde procesaremos ambas cadenas y devolveremos otra. En realidad es un ejemplo poco útil pero nos servirá para dar la idea sobre el uso de jQuery AJAX y donde usaremos JSON para el intercambio de datos.
Si deseas ver otro ejemplo un poco más practico visita el enlace jQuery AJAX a un método que devuelve una colección de objetos (Array JSON).
Pero veamos el código de ejemplo asociado:
jQuery AJAX Ejemplo, Código ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="jQAjax.aspx.cs" Inherits="jQuery_Ajax_jQAjax" %>
 
<html xmlns="http://www.w3.org/1999/xhtml">
  <head id="Head1" runat="server">
    <title>JQuery  AJAX Ejemplo Básico</title>
  
    <script type="text/javascript" src="../Scripts/jquery-1.3.2.min.js" ></script>
  
    <script type = "text/javascript">
        jQuery(document).ready(function() {
            $('#btnPrueba').click(function() {
                var nombre = $('#txtNombre').val();
                var apellido = $('#txtApellido').val();
 
                if (nombre && (nombre != ''))
                    sendDataAjax(nombre, apellido);
            });
        });
 
        function sendDataAjax(nombre, apellido) {
            var actionData = "{'nombre': '" + nombre + "',
                               'apellido': '" + apellido + "'}";
           
            $.ajax(
            {
                url: "jqAjax.aspx/GetDataAjax",
                data: actionData,
                dataType: "json",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                success: function(msg) { alert(msg.d); },
                error: function(result) {
                    alert("ERROR " + result.status + ' ' + result.statusText);
                }
            });        
        };
    </script>
  
  </head>
  <body>
    Nombre: <input type="text" id="txtNombre" /> <br />
    Apellido: <input type="text" id="txtApellido" /> <br />
    <input type="button" id="btnPrueba" value="Probando AJAX" />
  </body>
</html>
jQuery AJAX Ejemplo, Código C#
using System;
using System.Web.UI;
using System.Web.Services;
 
public partial class jQuery_Ajax_jQAjax : Page
{
    protected void Page_Load(object sender, EventArgs e) {}
    [WebMethod]
    public static string GetDataAjax(string nombre, string apellido)
    {
        return string.Format("Bienvenido al mundo AJAX {0} {1}", nombre, apellido);
    }
}
Al ejecutar la página obtendríamos lo siguiente:
jQuery Ajax JSON
Lo interesante de este ejemplo es que no se hace postback de la página, o sea, no se recarga nuevamente la página al hacer click en el botón “Probando AJAX”. Otro elemento a destacar es la sencillez de uso de este biblioteca (jQuery AJAX).
Pero comentemos un poco el ejemplo que hemos expuesto. Lo primero que hicimos fue asociar al evento click del botón btnPrueba, una función que lee el nombre y apellido y llama a la función sendDataAjax(nombre, apellido).
Esta función es la que hace la llamada AJAX, donde especificamos la URL, que corresponde a la dirección web o al nombre del archivo (jqAjax.aspx) y después el webmethod que invocamos (GetDataAjax), en data van los parámetros de entrada que se espera el webmethod con notación JSON; definimos además el tipo de envío (Post), y por ultimo seteamos success y error, asociándole las funciones que deben ejecutarse al terminarse de procesar la petición, si todo fue bien se ejecutara la función success, de lo contrario ejecutará la asociada a error.
Luego de esto solo queda comentar el código C#, pero creo que se explica por si solo, y además no es el objetivo principal de este post. Solo comentarles que en este ejemplo empleamos el uso de webmethod para hacer la llamada AJAX, pero también podría ser un Web Services, WCF, o una simple página. 

Nota: Este mismo ejemplo podríamos haberlo resuelto usando Microsoft Ajax Library, pero el objetivo de este artículo es que veamos la potencialidad de JQuery AJAX.

Fuente: http://www.esasp.net/2009/11/ajax-jquery-en-aspnet.html

jQuery AJAX y JSON Array

En este post veremos el código de ejemplo de una petición AJAX (usando jQuery) que nos devolverá una colección de objetos complejos.
Hace varios meses escribí un articulo (AJAX jQuery en ASP.Net) donde comentaba las bases del uso de AJAX con jQuery, pero en aquel artículo usamos un ejemplo bien sencillo para una mejor comprensión.
En este post intento ser un poco mas práctico y explicaremos un ejemplo de petición AJAX más parecido a lo que nos encontramos en la vida real, aunque eso sí, un poco más complejo (pero solo un poco, muy poco…)

Ejemplo jQuery AJAX con Array JSON

En nuestro ejemplo de hoy, la página hará una petición AJAX a un PageMethod que devolverá como resultado una colección de la clase Contacto. No devolverá ni un string, ni int, ni DateTime … sino una lista de objetos que veremos como tratarlos en el lado del cliente (AJAX JSON Array).
jQuery Ajax JSON Array
Nuestra página (.aspx) inicialmente solo tendrá un botón (Obtener Contactos). Al hacer clic en este se lanzará la petición jQuery AJAX que retornará una lista de objetos del tipo Contacto. La lista de contactos la transformaremos en un Array JSON que podremos manipular perfectamente en el lado del cliente.
Pero pasemos a ver el código de este ejemplo AJAX.

Ejemplo jQuery AJAX, ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="JQAjaxArrayJSon.aspx.cs" 
         Inherits="jQuery_Ajax_JQAjaxArrayJSon" %>

<html xmlns="http://www.w3.org/1999/xhtml">
  <head id="Head1" runat="server">   
    <script type="text/javascript" src="../Scripts/jquery-1.3.2.min.js" ></script>

    <script type = "text/javascript">
      jQuery(document).ready(function() {
        $('#btnObtContactos').click(getContactos);
      });

      function getContactos() {
        $.ajax({
          type: "POST",
          url: "JQAjaxArrayJSon.aspx/ObtenerContactos",
          data: "{}",
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (response) {
            var contactos = (typeof response.d) == 'string' ?
                               eval('(' + response.d + ')') :
                               response.d;

            $('#tablaContactos').empty();
            $('#tablaContactos').append('<tr>
                                           <td><b>ID</b></td><td><b>Nombre</b></td>
                                           <td><b>Telefono</b></td><td><b>EMail</b></td>
                                         </tr>');
           
            for (var i = 0; i < contactos.length; i++) {
              $('#tablaContactos').append('<tr>' +
                                    '<td>' + contactos[i].IdContacto + '</td>' +
                                    '<td>' + contactos[i].Nombre + '</td>' +
                                    '<td>' + contactos[i].Telefono + '</td>' +
                                    '<td>' + contactos[i].Email + '</td>' +
                                  '</tr>');
            }
          },
          error: function (result) {
            alert('ERROR ' + result.status + ' ' + result.statusText);
          }
        });
      }
    </script>
  </head>
  <body>
    <form id="form1" runat="server">
    <input type="button" id="btnObtContactos" value="Obtener Contactos" /> <br/><br/>

    <table id='tablaContactos'></table>
    </form>
  </body>
</html>

 

Ejemplo jQuery AJAX, Código C#

public partial class jQuery_Ajax_JQAjaxArrayJSon : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e) {}

  [WebMethod]
  public static List<Contacto> ObtenerContactos()
  {
    return new List<Contacto>
            {
                new Contacto { IdContacto=14, Nombre="Pedro", Telefono="601 01 01 01",
                               Email = "pedrog@gmail.com" },
                new Contacto { IdContacto=15, Nombre="Maria", Telefono="601 01 01 02",
                               Email = "maria69@gmail.com"  },
                new Contacto { IdContacto=16, Nombre="Juana", Telefono="601 01 01 03",
                               Email = "juana33@gmail.com"  }
            };
  }
}

public class Contacto
{
  public int IdContacto { get; set; }
  public string Nombre { get; set; }
  public string Telefono { get; set; }
  public string Email { get; set; }
}
Pero comentemos un poco el ejemplo AJAX ASP.NET que hemos expuesto:
Lo primero que hicimos en el ASPX fue asociar al evento click del botón btnObtContactos, la función getContactos().
  $('#btnObtContactos').click(getContactos);
Esta función es la que hace la llamada jQuery AJAX, pero detallemos más en las opciones usadas en esta llamada AJAX:

$.ajax() Opciones

  • type: "POST": Con esto estamos especificando el tipo de petición AJAX (HTTP Verb) que haremos al servidor (GET o POST). En nuestro caso hemos usado el método POST.
  • url: "JQAjaxArrayJSon.aspx/ObtenerContactos": Esta propiedad contiene la dirección url del método donde está alojado nuestro servicio web (url / método a invocar). En nuestro caso es un PageMethod (ObtenerContactos) que hemos definido en la propia pagina (JQAjaxArrayJSon.aspx) por simplicidad.
  • data: "{}": Esta propiedad contiene los datos que serán enviados al servidor. En nuestro caso como el PageMethod (ObtenerContactos) no necesita ningún parámetro, pues no enviamos dato alguno. Si por ejemplo, quisiéramos enviar algún dato en la petición AJAX, podríamos hacer algo como esto:
    data: "{'nombre': 'Derbis', 'apellidos': 'Corrales Varela'}"
  • contentType: "application/json; charset=utf-8": Esta propiedad contiene el formato en el que estamos pasando nuestro parámetros al servidor.
  • dataType: "json": Esta propiedad contiene el tipo de dato que esperamos recibir desde el servicio invocado. En nuestro caso JSON evalúa la respuesta y nos retorna un objeto javascript.
  • Por último seteamos success y error, asociándole las funciones que deben ejecutarse al terminarse de procesar la petición AJAX, si todo fue bien se ejecutará la función success, de lo contrario ejecutará la asociada a error. En la función anónima asociada a success lo que hacemos es obtener el Array JSON y llenar la tabla tablaContactos, pero no comentaré más de esto pues no es el objetivo de este artículo.
Luego de esto solo queda comentar el código C#, donde está el PageMethod ObtenerContactos, que no hace nada complicado, solo crea una lista de contactos (List<Contacto>) que devuelve.

Nota: En este ejemplo utilizamos un  PageMethod para hacer la llamada jQuery AJAX, pero también podríamos haber usado un Web Services, WCF, o una simple página. 

Fuente: http://www.esasp.net/2010/02/jquery-ajax-y-json-array.html 

miércoles, 26 de agosto de 2015

Encrypt your passwords with SHA1 hashing in C#


In this post I will be showing a simple C# method that can be used to encrypt a string(password) to SHA1 hash 

SHA-1 is a cryptographic hash function designed by the United States National Security Agency and is a U.S. Federal Information Processing Standard published by the United States NIST.
SHA-1 produces a 160-bit (20-byte) hash value. A SHA-1 hash value is typically rendered as a hexadecimal number, 40 digits long. (From Wikipedia)


To use the SHA1 encryption in your application you should include the <System.Security.Cryptography> Namespace using the code above

 using System.Security.Cryptography;  

The Bloc code below carries a method (GetSHA1) that convert a chain to an MD5 hash, returning a 40 characters, white one string parameter

GetSHA1 function :

  public string GetSHA1(string text)  
     {  
       SHA1CryptoServiceProvider sh = new SHA1CryptoServiceProvider();  
       sh.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));  
       byte[] re = sh.Hash;  
       StringBuilder sb = new StringBuilder();  
       foreach (byte b in re)  
       {  
         sb.Append(b.ToString("x2"));  
       }  
       return sb.ToString();  
     }  

To use the GetSHA1 method

  string result = = GetSHA1("Net4free");  
             SHA1 hash for Net4free is : 4bb74e9a18cc22abe08a92b29bfba04bf870728d




Download

Fuente: http://www.tuto4free.com/2014/04/encrypt-your-passwords-with-sha1.html

Encrypt your passwords with MD5 hashing in C#

In this blog post I will be demonstrating a simple C# method that can be utilized to encrypt a string (password) to MD5 hash



The MD5 message-digest algorithm is a widely used cryptographic hash function producing a 128-bit (16-byte) hash value, typically expressed in text format as a 32 digit hexadecimal number. MD5 has been utilized in a wide variety of cryptographic applications, and is also commonly used to verify data integrity. (From Wikipedia)




To use the MD5 encryption in your application you should include the <System.Security.Cryptography> Namespace using the code above


 using System.Security.Cryptography;  

The Bloc code below carries a method (GetMD5) that convert a chain to an MD5 hash, returning a 32 characters, white one string parameter
GetMD5 function

  public string GetMD5(string text)  
     {  
       MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();  
       md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));  
       byte[] result = md5.Hash;  
       StringBuilder str = new StringBuilder();  
       for (int i = 0; i < result.Length; i++)  
       {  
         str.Append(result[i].ToString("x2"));  
       }  
       return str.ToString();  
     }  

To use the GetMD5 method

 string result = GetMD5("Net4free");  
      MD5 hash for Net4free is : 52db46c9e0d26245d5d24c38c6517a91




Download

Fuente: http://www.tuto4free.com/2014/04/encrypt-your-passwords-with-md5-hashing.html

jQuery AJAX JSON example in Asp.net to insert data into sql server database without postback

Introduction: In this article I am going to share how to validate and save data into SQL SERVER database table in asp.net without any post back (asynchronously) using jQuery AJAX JSON and WebMethod.
Validate and store data in sql server database in asp.net using jQuery Ajax
In previous articles i explained how to call Asp.net server side function without any post back using jquery ajax call and Call Asp.net server side function using Javascript and AJAX PageMethods without any PostBack and jQuery to disable mouse right click on images only and jQuery to limit and display number of characters left in multiline textbox and Upload multiple files or images through one fileupload control using jQuery 

Description: jQuery ajax allows us to call server side ASP.NET page methods/functions declared as WebMethod from client side without any postback. Data can be inserted in sql server table by sending ajax request using jQuery to web method containing code to store data in database.
Implementation: Let’s create a sample page to demonstrate the concept.
  • First of all create the Database in Sql Server and Name it "BooksDB" or whatever you want. Create a table (BookDetails) using the script below.

 CREATE TABLE BookDetails(
                [BookId] [int] IDENTITY(1,1) NOT NULL,
                [BookName] [varchar](100) NULL,
                [Author] [varchar](100) NULL,
                [BookTypeId] [int] NULL,
                [Price] [decimal](18, 2) NULL,
 CONSTRAINT [PK_BookDetails] PRIMARY KEY CLUSTERED
(
                [BookId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
  • In Web.config file create the connection string as: 
  <connectionStrings>
    <add name="conStr" connectionString="Data Source=Lalit;Initial Catalog=BooksDB;Integrated Security=True"/>
  </connectionStrings>

Note:  Replace the Data Source and the Initial catalog as per your  application

  • Now create a stored procedure to save book details 

CREATE PROCEDURE Sp_SaveBookDetails
                @BookName VARCHAR(100),
                @Author VARCHAR(100),
                @BookTypeId INT,
                @Price DECIMAL(18,2)
AS
BEGIN 
INSERT INTO BookDetails (BookName,Author,BookTypeId,Price)
VALUES (@BookName,@Author,@BookTypeId,@Price)    
END
HTML Source Code:
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript">
        function SaveRecord() {
            //Get control's values
            var bookName = $.trim($('#<%=txtName.ClientID %>').val());
            var author = $.trim($('#<%=txtAuthor.ClientID %>').val());
            var type = $('#<%=ddlType.ClientID %>').val();
            var price = $.trim($('#<%=txtPrice.ClientID %>').val());
            var msg = "";
            //check for validation
            if (bookName == '') {
                msg += "<li>Please enter book name</li>";
            }
            if (author == '') {
                msg += "<li>Please enter author name</li>";
            }
            if (type == 0) {
                msg += "<li>Please select book type</li>";
            }
            if (price == '') {
                msg += "<li>Please enter book price</li>";
            }
            if (msg.length == 0) {
                //Jquery ajax call to server side method
                $.ajax({
                    type: "POST",
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    //Url is the path of our web method (Page name/function name)
                    url: "MyPageName.aspx/SaveBookDetails",
                    //Pass paramenters to the server side function
                    data: "{'BookName':'" + bookName + "', 'Author':'" + author + "','BookTypeId':'" + type + "','Price':'" + price + "'}",
                    success: function (response) {
                        //Success or failure message e.g. Record saved or not saved successfully
                        if (response.d == true) {
                            //Set message
                            $('#dvResult').text("Record saved successfully");
                            //Reset controls                          
                            $('#txtName').val('');
                            $('#txtAuthor').val('');
                            $('#ddlType').val("0");
                            $('#txtPrice').val('');                         
                        }
                        else {
                            $('#dvResult').text("Record could't be saved");
                        }
                        //Fade Out to disappear message after 6 seconds
                        $('#dvResult').fadeOut(6000);
                    },
                      error: function (xhr, textStatus, error) {
                          //Show error message(if occured)
                          $('#dvResult').text("Error: " +  error);
                      }
                  });
            }
            else {
                  //Validation failure message
                $('#dvResult').html('');
                $('#dvResult').html(msg);
            }
            $('#dvResult').fadeIn();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td>Book Name: </td>
                    <td>
                        <asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
                </tr>
                <tr>
                    <td>Author: </td>
                    <td>
                        <asp:TextBox ID="txtAuthor" runat="server"></asp:TextBox></td>
                </tr>
                <tr>
                    <td>Type: </td>
                    <td>
                        <asp:DropDownList ID="ddlType" runat="server">
                            <asp:ListItem Text="--Select--" Value="0"></asp:ListItem>
                            <asp:ListItem Text="MVC" Value="1"></asp:ListItem>
                            <asp:ListItem Text="ASP.NET" Value="2"></asp:ListItem>
                            <asp:ListItem Text="SQL SERVER" Value="3"></asp:ListItem>
                        </asp:DropDownList></td>
                </tr>
                <tr>
                    <td>Price: </td>
                    <td>
                        <asp:TextBox ID="txtPrice" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <button type="submit" onclick="SaveRecord();return false">Submit</button>
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <div id="dvResult"></div>
                    </td>
                </tr> 
            </table>
        </div>
    </form>
</body>
</html>
Asp.Net C# Code to validate and store data in sql server database table using jQuery Ajax

First add following namespaces

using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Services;
then write the code as:
[WebMethod]
        public static bool SaveBookDetails(string BookName, string Author, Int32 BookTypeId, decimal Price)
        {
            bool status;
            using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conStr"].ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand("Sp_SaveBookDetails", con))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@BookName", BookName);
                    cmd.Parameters.AddWithValue("@Author", Author);
                    cmd.Parameters.AddWithValue("@BookTypeId", BookTypeId);
                    cmd.Parameters.AddWithValue("@Price", Price);
                    if (con.State == ConnectionState.Closed)
                    {
                        con.Open();
                    }
                    Int32 retVal = cmd.ExecuteNonQuery();
                    if (retVal > 0)
                    {
                        status = true;
                    }
                    else
                    {
                        status = false;
                    }
                    return status;
                }
            }
        }
Asp.Net VB Code to validate and store data in sql server database table using jQuery Ajax

First add following namespaces

Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Web.Services
Then write the code as:
<WebMethod> _
    Public Shared Function SaveBookDetails(BookName As String, Author As String, BookTypeId As Int32, Price As Decimal) As Boolean
        Dim status As Boolean
        Using con As New SqlConnection(ConfigurationManager.ConnectionStrings("conStr").ConnectionString)
            Using cmd As New SqlCommand("Sp_SaveBookDetails", con)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.AddWithValue("@BookName", BookName)
                cmd.Parameters.AddWithValue("@Author", Author)
                cmd.Parameters.AddWithValue("@BookTypeId", BookTypeId)
                cmd.Parameters.AddWithValue("@Price", Price)
                If con.State = ConnectionState.Closed Then
                    con.Open()
                End If
                Dim retVal As Int32 = cmd.ExecuteNonQuery()
                If retVal > 0 Then
                    status = True
                Else
                    status = False
                End If
                Return status
            End Using
        End Using

    End Function

Now over to you:
" I hope you have got how to insert data into sql server database without postback using jQuery AJAX call and If you like my work; you can appreciate by leaving your comments, hitting Facebook like button, following on Google+, Twitter, Linked in and Pinterest, stumbling my posts on stumble upon and subscribing for receiving free updates directly to your inbox . Stay tuned and stay connected for more technical updates." 

Fuente: http://www.webcodeexpert.com/2014/11/jquery-ajax-json-example-in-aspnet-to.html