例外:未找到方法:无效.... C#

时间:2015-12-12 16:50:23

标签: c# methods

我是新手,我有一个问题。抱歉我的英文。

我有一个Windows项目,我有一个名为" libPQR"的库;在那里,我有一个名为" guardarPQR"的公共方法。在该方法中,我定义一个SQL语句并调用一个方法来验证基准;之后,我在de library call" grabar"中调用私有方法。我在哪里与数据库进行共存。

问题是,当我调用方法" grabar"时,它遇到了一个异常,它说:"找不到方法:' void libConexionBD.clsConexionBD.set_SQL(System.String )'"

我不明白,因为方法grabar返回bool类型。

我给你看了代码:

public bool guardarPQR()
    {
        bool bandera;
            try
            {
                strSQL = "insert into PQR values('" + strDescripcion + "'," + intSistema + ",'" + string.Format("{0:dd/MM/yyyy}", dtfecha) + "', '" + string.Format("{0:HH:mm}", dthorainicio) + "', '" + string.Format("{0:HH:mm}", dthorafinalizacion) + "'," + intError + ")";

                if (!validar())
                    return false;


                bandera = grabar();
               return bandera;
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                return false;
            }

这是另一种方法:

        private bool grabar()
        {
            try
            {

                objCnx = new clsConexionBD();
                objCnx.SQL = strSQL;

                if (!objCnx.ConsultarValorUnico(false))
                {
                    objCnx = null;
                    return false;
                }

                intId = Convert.ToInt32(objCnx.Valor_Unico);

                objCnx.CerrarCnx();
                objCnx = null;

                return true;

            }
            catch (Exception ex)
            {
                strError = ex.Message;
                return false;
            }

        }

感谢您的帮助。

这是库:libconexionBD

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

//Referenciar y usar
using System.Data;//Facilita usar los objetos conectados y desconectados
using System.Data.SqlClient;//Objeto especializado para conexion a sql server //Commmon para oracle //SQLServer entrar a sqlserver y bajar drive para .net

//Referenciar y usar

using System.IO;

namespace libConexionBD
{
public class clsConexionBD
{
#region "Constructor"
    public clsConexionBD()
    {      
        blnHayCnx = false;
        objCnx = new SqlConnection();      //Para la Conexión
        objCmd = new SqlCommand();         //Para la Transacción
        objAdapter = new SqlDataAdapter(); //Para la llenar el DataSet
        objDts = new DataSet();            //Para el DataSet
    }
#endregion

#region "Atríbutos"

    private string strCadenaCnx;       //Para la cadena de conexón a la BD
    private object objVrUnico;         //Para la captura y retorno del Vr. único(método: ConsultarValorUnico)) 
    private string strSQL;             //Para la sentencia SQL a ejecutarse en la BD
    private string strError;           //Para el mensaje de error
    private bool blnHayCnx;            //Para saber si hay o no Cnx a la BD
    private SqlConnection objCnx;      //Para el objeto Conexión
    private SqlCommand objCmd;         //Para el objeto Command (realiza la transacción)
    private SqlDataReader objReader;   //Para el objeto DataReader (contenedor de info)
    private SqlDataAdapter objAdapter; //Para el objeto DataAdapter (para llenar el DataSet, entre otros)
    private DataSet objDts;            //Para el objeto DataSet (contenedor de info)
#endregion

#region "Propiedades"
    public string SQL                     //Para ingresar la sentencia SQL a ejecutarse en la BD      
    { set { strSQL = value;    } }
    public object Valor_Unico             //Para retornar el valor obtenido al invocar el método:  ConsultarValorUnico
    { get { return objVrUnico; } }
    public SqlDataReader DataReader_Lleno //Para retornar el DataReader con la info obtenida al invocar el método: Consultar
    { get { return objReader;  } }
    public DataSet DataSet_Lleno          //Para retornar el DataSet con la info obtenida al invocar el método: LlenarDataSet
    { get { return objDts;     } }
    public string Error                   //Para retornar el mensaje de error
    { get { return strError;   } }
#endregion

#region "Métodos Privados"
    private bool GenerarCadenaCnx()
    {
        /*try
        {
            if ( string.IsNullOrEmpty( strApp ) )
            {
                strError = "Sin Nombre de la aplicación";
                return false;
            }
            clsParametros objParams = new clsParametros();
            if ( ! objParams.GenerarCadenaCnx( strApp ) )
            {
                strError = objParams.Error;
                objParams = null;
                return false;
            }
            strCadenaCnx = objParams.CadenaCnx;
            objParams = null;
            return true;
        }
        catch ( Exception ex )
        {
            strError = ex.Message;
            return false;
        }*/

        string[] parametros;
        string line;
        StreamReader r = new StreamReader("conexion.txt");

        try
        {
            line = r.ReadLine();

            parametros = line.Split(':');

            strCadenaCnx = "Data Source=" + parametros[0] + "\\" + parametros[1] + " ; Initial Catalog=PQR ; User ID=TUENLACETV ; PASSWORD=1234";
            return true;
        }
        catch (Exception ex)
        {
            strError = ex.Message;
            return false;

        }
    }
    private bool AbrirCnx()
    {
        if ( ! GenerarCadenaCnx() )
            return false;
        objCnx.ConnectionString = strCadenaCnx;
        try
        {
            objCnx.Open();
            blnHayCnx = true;
            return true;
        }
        catch ( Exception ex )
        {
            strError = ex.Message;
            blnHayCnx = false;
            return false;
        }
    }
#endregion

#region "Métodos Públicos"
    public void CerrarCnx()
    {
        try
        {
            objCnx.Close();
            objCnx = null;
            blnHayCnx = false;
        }
        catch (Exception ex)
        {
            strError = "No se cerró o liberó la conexión, " + ex.Message;
        }
    }
    public bool Consultar( bool blnParametros )
    {
        try
        {
            if ( string.IsNullOrEmpty( strSQL ) )
            {
                strError = "No definió la instrucción SQL";
                return false;
            }
            if ( ! blnHayCnx )
                if ( ! AbrirCnx() )
                    return false;

            //Preparar el Comando para ejecutar la transacción SQL en la BD
            objCmd.Connection = objCnx;
            objCmd.CommandText = strSQL;

            if (blnParametros)
                objCmd.CommandType = CommandType.StoredProcedure;
            else
                objCmd.CommandType = CommandType.Text;

            objReader = objCmd.ExecuteReader();  //Realizar la transacción en la BD
            return true;
        }
        catch ( Exception ex )
        {
            strError = ex.Message;
            return false;
        }
    }
    public bool ConsultarValorUnico( bool blnParametros )
    {
        try
        {
            if ( string.IsNullOrEmpty( strSQL ) )
            {
                strError = "No definió la instrucción SQL";
                return false;
            }
            if ( ! blnHayCnx )
                if ( ! AbrirCnx() )
                    return false;
            //Preparar el Comando para ejecutar la transacción SQL en la BD
            objCmd.Connection = objCnx;
            objCmd.CommandText = strSQL;
            if (blnParametros)
                objCmd.CommandType = CommandType.StoredProcedure;
            else
                objCmd.CommandType = CommandType.Text;

            objVrUnico = objCmd.ExecuteScalar();  //Realizar la transacción en la BD
            return true;
        }
        catch (Exception ex)
        {
            strError = ex.Message;
            return false;
        }
    }
    public bool EjecutarSentencia( bool blnParametros )
    {
        try
        {
            if ( string.IsNullOrEmpty(strSQL) )
            {
                strError = "No definió la instrucción SQL";
                return false;
            }
            if ( ! blnHayCnx )
                if ( ! AbrirCnx() )
                    return false;
            //Preparar el Comando para ejecutar la transacción SQL en la BD
            objCmd.Connection = objCnx;
            objCmd.CommandText = strSQL;
            if (blnParametros)
                objCmd.CommandType = CommandType.StoredProcedure;
            else
                objCmd.CommandType = CommandType.Text;

            objCmd.ExecuteNonQuery();   //Realizar la transacción en la BD
            return true;
        }
        catch (Exception ex)
        {
            strError = ex.Message;
            return false;
        }
    }
    public bool LlenarDataSet( bool blnParametros )
    {
        try
        {
            if ( string.IsNullOrEmpty( strSQL ) )
            {
                strError = "No definió la instrucción SQL";
                return false;
            }
            if ( ! blnHayCnx )
                if ( ! AbrirCnx() )
                    return false;
            //Preparar el Comando para el DataAdapter
            objCmd.Connection = objCnx;
            objCmd.CommandText = strSQL;
            if (blnParametros)
                objCmd.CommandType = CommandType.StoredProcedure;
            else
                objCmd.CommandType = CommandType.Text;

            //Preparar el DataAdapter para el uso del comando en la BD
            objAdapter.SelectCommand = objCmd; //El DataAdapter Utiliza el Command para la transacción
            objAdapter.Fill(objDts);//Realizar la transacción en la BD y el llenado del DataSet/Datatable
            return true;
        }
        catch (Exception ex)
        {
            strError = ex.Message;
            return false;
        }
    }
#endregion
}
}

0 个答案:

没有答案