Hola resulta que tengo un pequeño inconveniente a la hora de pasar un constructor en VB.NET a C#, el cual se encarga de pasar la cadena de conexion en una clase que tengo para la conexion a la base de datos, normalmente en VB.NET lo haria de la siguiente manera:
Imports System.Windows.Forms
Public Class BD_Conexion
Dim BD As New Data.SqlClient.SqlConnection
Dim CadenaConexion As String
Private Sub Conectar_BD()
BD.ConnectionString = CadenaConexion
BD.Open()
End Sub
Public Sub Desconectar_BD()
BD.Close()
End Sub
Public Sub New(ByVal CadenaConexion As String)
Me.CadenaConexion = CadenaConexion
End Sub
End Class
Y a la hora de usar las funciones de mi clase lo haria de esta manera:
Friend BD As New Lib_Conexion.BD_Conexion("Aqui la cadena de conexion la cual se envia por medio del constructor")
Pero resulta que ahora estoy elaborando un proyecto universitario y no recuerdo ni encuentro por ningún sitio como hacer esto en C#.NET, agradecería que me echaran una mano.
Lo que tengo hasta el momento es esto
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data .SqlClient ;
using System.Data.SqlTypes;
using System.Data;
namespace Lib_BaseDatos
{
public class Lib_Conexion
{
SqlConnection BD = new SqlConnection();
string Cadena_Conexion="";
private void Conectar_BD()
{
BD.ConnectionString = Cadena_Conexion;
BD.Open();
}
void Desconectar_BD()
{
BD.Close();
}
public void Sql_Ejecuta_Instruccion(string Sqlinstruccion)
{
Conectar_BD();
SqlCommand Comando = new SqlCommand(Sqlinstruccion, BD);
Comando.ExecuteNonQuery();
Desconectar_BD();
}
public void Llenar_Ds(System.Data.DataSet Ds, string Sqlinstruccion)
{
Conectar_BD();
SqlDataAdapter Adaptador = new SqlDataAdapter(Sqlinstruccion, BD);
Adaptador.Fill(Ds);
Desconectar_BD();
}
public Boolean Dato_Repetido(string Tabla, string PrimaryKey, string Valor) {
string sqlinstruccion="";
DataSet ds = new DataSet();
sqlinstruccion = "select * from " + Tabla + " where " + PrimaryKey + " = '" + Valor + "'";
Llenar_Ds (ds, sqlinstruccion );
if(ds.Tables[0].Rows .Count > 0){
return true;
}
else
{
return false;
}
}
public string Averigua_Consecutivo(string Tabla, string PrimaryKey) {
string sqlinstruccion = "";
DataSet ds = new DataSet();
sqlinstruccion = "select isnull (max(" + PrimaryKey + "),0) + 1 from " + Tabla ;
Llenar_Ds(ds, sqlinstruccion);
return ds.Tables[0].Rows[0].ItemArray [0].ToString ();
}
}}
Lo que no tengo idea es como usar un constructor para poder pasar mi cadena, lo estaba declarando de la siguiente manera:
public new (string Cadena_Conexion){
this .Cadena_Conexion= Cadena_Conexion;
}
Pero me saltan multiples errores, espero me ayuden a traducir esa porcion de codigo,
saludos y gracias
Al fin, Resuelta por mi XD
public Lib_Conexion(string Cadena_Conexion) {
this.Cadena_Conexion = Cadena_Conexion;
}
Asi quedaria mi clase con la cual realizo la conexion:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data .SqlClient ;
using System.Data.SqlTypes;
using System.Data;
namespace Lib_BaseDatos
{
public class Lib_Conexion
{
SqlConnection BD = new SqlConnection();
string Cadena_Conexion="";
private void Conectar_BD()
{
BD.ConnectionString = Cadena_Conexion;
BD.Open();
}
void Desconectar_BD()
{
BD.Close();
}
public void Sql_Ejecuta_Instruccion(string Sqlinstruccion)
{
Conectar_BD();
SqlCommand Comando = new SqlCommand(Sqlinstruccion, BD);
Comando.ExecuteNonQuery();
Desconectar_BD();
}
public void Llenar_Ds(System.Data.DataSet Ds, string Sqlinstruccion)
{
Conectar_BD();
SqlDataAdapter Adaptador = new SqlDataAdapter(Sqlinstruccion, BD);
Adaptador.Fill(Ds);
Desconectar_BD();
}
public Boolean Dato_Repetido(string Tabla, string PrimaryKey, string Valor) {
string sqlinstruccion="";
DataSet ds = new DataSet();
sqlinstruccion = "select * from " + Tabla + " where " + PrimaryKey + " = '" + Valor + "'";
Llenar_Ds (ds, sqlinstruccion );
if(ds.Tables[0].Rows .Count > 0){
return true;
}
else
{
return false;
}
}
public string Averigua_Consecutivo(string Tabla, string PrimaryKey) {
string sqlinstruccion = "";
DataSet ds = new DataSet();
sqlinstruccion = "select isnull (max(" + PrimaryKey + "),0) + 1 from " + Tabla ;
Llenar_Ds(ds, sqlinstruccion);
return ds.Tables[0].Rows[0].ItemArray [0].ToString ();
}
public Lib_Conexion(string Cadena_Conexion) {
this.Cadena_Conexion = Cadena_Conexion;
}
}
}
y Asi hago una instancia de la clase:
Lib_BaseDatos.Lib_Conexion BD = new Lib_BaseDatos.Lib_Conexion("Aqui va el string connection XD");