Datatable en C# y Vb.net
Por. Diógenes Amaury MS
En el día de hoy estuvimos viendo en la universidad donde imparto docencia el tema de los datatables, paradójícamente por cuestiones inexplicable no pude completar de forma satisfactoria la explicación de este importante tema, es por ello, que voy aprovechar para hacerlo desde este blog y contribuir de esta manera con mis estudiantes y con las personas interesada con el tema que visitan este blog.
Iniciemos por definir primero datatatable y SqlDataAdapter:
Datatable:
Este objeto nos permite representar una determinada tabla en memoria, de modo que podamos interactuar con ella.
SqlDataAdapter:
La idea es crear un clase que tenga 2 metodos una para determinar la secuencia de la tabla clientes, y otro para guardar registro en dicha tabla.
Lo primero que debemos hacer es crear una clase, en dicha clase debemos especificar los proveedores de datos en nuestra clase.
En vb.net
Imports System.Data
Imports System.Data.SqlClient
En c#
using System.Data;
using System.Data.SqlClient;
Dentro de la clase creamos la variable para almacenar la conexión a la base de datos.
En vb.net
Public conn As New SqlConnection("Server=pc_1\SQLEXPRESS;Database=Ventas;Trusted_Connection=True;")
En C#
SqlConnection conn = new SqlConnection(@"Server=pc_1\SQLEXPRESS;Database=Ventas;Trusted_Connection=True;");
Ahora creamos el método secuencia, el cual tendrá como función principal el de obtener la secuencia de la tabla clientes.
En vb.net
Public Function secuencia(strSql As String) As Long
Dim numero As Long
Dim dt As New DataTable
Dim da As New SqlDataAdapter(strSql, conn)
da.Fill(dt)
If dt.Rows.Count > 0 Then
numero = Val(dt.Rows(0).Item("secuencia").ToString) + 1
Else
numero = 1
End If
Return numero
End Function
En C#
public int Secuencia(string strSql)
{
int numero =0;
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
da.Fill(dt);
if (dt.Rows.Count > 0)
{
numero = Convert.ToInt32( dt.Rows[0]["secuencia"] ) + 1;
}
return numero;
}
En el momento en que intentamos obtener la secuencia en C# fue donde presentamos el inconveniente, ya que teníamos que convertilo a int32 .
dt.Rows[0]["secuencia"] de esta forma mostramos el contenido del campo, pero el valor que devuelve es un entero de 32, razón que provocaba un error!!!.
llamando la clase desde el formulario y utilizando el método:
En vb.net
Dim registro As New claGobal
txtCodigo.Text = registro.secuencia("select max(codcli) as secuencia from clientes")
En C#
cla_global registro = new cla_global();
txtCodigo.Text =Convert.ToString(registro.Secuencia("SELECT MAX(CODCLI) AS secuencia FROM CLIENTES"));
No hay comentarios:
Publicar un comentario