Pq dá esse erro ao usar o MySqlConnector 6.1.2.0 ao chamar um metodo Update em uma Classe

Olá pessoal é o seguinte, como Utilizo o MySqlConnector Driver 6.1.2.0 em minha aplicação asp.net 3.5(Asp.Net WebApplication Project) com o VS2008 Framework 3.5 .NET com Procedures em Uma Classe ao chamar metodo desta classe dá o seguinte erro


Erro de Servidor no Aplicativo '/'.
--------------------------------------------------------------------------------

When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set.
Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: System.InvalidOperationException: When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set.

Erro de Origem:


Linha 197: {
Linha 198: con.Open();
Linha 199: cmdtimes.ExecuteNonQuery();
Linha 200:
Linha 201: }


Arquivo de Origem: D:\MinhasWebApp\VS2008\siteesportivoadmin\siteesportivoadmin\Times.cs Linha: 199

Rastreamento de Pilha:


[InvalidOperationException: When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set.]
MySql.Data.MySqlClient.StoredProcedure.GetParameters(String procName) +655
MySql.Data.MySqlClient.StoredProcedure.Resolve(Boolean preparing) +418
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +952
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() +32
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() +69
CorinthianosTimes.corinthianosadmin.Times.UpdateTimes(Int32 IdTime, String Time, String Campeonatos, String img110110, String img7676, String img5555) in D:\MinhasWebApp\VS2008\siteesportivoadmin\siteesportivoadmin\Times.cs:199

[TargetInvocationException: Uma exceção foi acionada pelo destino de uma chamada.]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +71
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +261
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method, Boolean disposeInstance, Object& instance) +488
System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method) +39
System.Web.UI.WebControls.ObjectDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +1030
System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +92
System.Web.UI.WebControls.FormView.HandleUpdate(String commandArg, Boolean causesValidation) +835
System.Web.UI.WebControls.FormView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +509
System.Web.UI.WebControls.FormView.OnBubbleEvent(Object source, EventArgs e) +95
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.FormViewRow.OnBubbleEvent(Object source, EventArgs e) +113
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565




--------------------------------------------------------------------------------
Informações sobre a Versão: Microsoft .NET Framework Versão:2.0.50727.3603; Versão do ASP.NET:2.0.50727.3082 A minha classe é esta


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data;
using MySql.Data.MySqlClient;
using System.Web.Configuration;


namespace siteesportivoTimes.siteesportivoadmin
{
///
/// Representa os Times Cadastrados no Site
/// e contem métodos para trabalhar com os Times
///
[System.ComponentModel.DataObject]
public class Times
{
private static readonly string _connectionString;

private int _idTime;
private string _Time;
private string _Campeonatos;
private string _Img110110;
private string _Img7676;
private string _Img5555;

public int IdTime
{
get { return _idTime; }
set { _idTime = value; }
}

public string Time
{
get { return _Time; }
set { _Time = value; }
}

public string Campeonatos
{
get { return _Campeonatos; }
set { _Campeonatos = value; }
}

public string Img110110
{
get { return _Img110110; }
set { _Img110110 = value; }
}

public string Img7676
{
get { return _Img7676; }
set { _Img7676 = value; }
}

public string Img5555
{
get { return _Img5555; }
set { _Img5555 = value; }
}


static Times()
{
_connectionString = WebConfigurationManager.ConnectionStrings["SimpleProviderConnectionString"].ConnectionString;
}

public Times(MySqlDataReader reader)
{
_idTime = (int)Convert.ToInt32(reader["IDTime"]);
_Time = (string)reader["Time"];
_Campeonatos = (string)reader["Campeonatos"];
_Img110110 = (string)reader["Img110110"];
_Img7676 = (string)reader["Img7676"];
_Img5555 = (string)reader["Img5555"];
}

///
/// Seleciona todos os Times da Base de Dados
///
///
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select, true)]
public static List SelectTimes()
{
//Inicializar Commando
MySqlConnection con = new MySqlConnection(_connectionString);
MySqlCommand cmdtimes = new MySqlCommand("sp_TimesSelectAll",con);
cmdtimes.CommandType = CommandType.StoredProcedure;

List results = new List();

using (con)
{
con.Open();
MySqlDataReader reader = cmdtimes.ExecuteReader();
while (reader.Read())
{
results.Add(new Times(reader));
}

con.Close();
return results;
}

}

///
/// Seleciona um Time por IDTime
///
/// ///
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
public static Times SelecTimesById(int IDTime)
{
//Inicializar o Command
MySqlConnection con = new MySqlConnection(_connectionString);
MySqlCommand cmdtimes = new MySqlCommand("sp_TimesSelectById", con);
cmdtimes.CommandType = CommandType.StoredProcedure;

//Inicializar Parameters p/ Evitar SqlInjection
cmdtimes.Parameters.AddWithValue("@P_IDTime", IDTime);

//Criar Variavel para Retorno de Resultados
Times result = null;

using (con)
{
con.Open();
MySqlDataReader reader = cmdtimes.ExecuteReader();

if (reader.Read())
result = new Times(reader);

}
//con.Close();
return result;


}

//
//Create a new Time
//
// [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]
public static void InsertTimes(string time, string campeonatos, string img110110, string img7676, string img5555)
{
//Initialize command
MySqlConnection con = new MySqlConnection(_connectionString);
MySqlCommand cmdtimes = new MySqlCommand("sp_TimesInsert", con);
cmdtimes.CommandType = CommandType.StoredProcedure;

//Initialize parameters
cmdtimes.Parameters.AddWithValue("@P_Time", time);
cmdtimes.Parameters.AddWithValue("@P_Campeonatos", campeonatos);
cmdtimes.Parameters.AddWithValue("@P_Img110110", img110110);
cmdtimes.Parameters.AddWithValue("@P_Img7676", img7676);
cmdtimes.Parameters.AddWithValue("@P_Img5555", img5555);
using (con)
{
con.Open();
cmdtimes.ExecuteNonQuery();
}
//con.Close();
}


///
/// Update de um Time Existente
///
/// /// [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
public static void UpdateTimes(int IdTime, string Time, string Campeonatos, string img110110, string img7676, string img5555)
{
//Inicializar o Command
MySqlConnection con = new MySqlConnection(_connectionString);
MySqlCommand cmdtimes = new MySqlCommand("sp_TimesUpdate", con);
cmdtimes.CommandType = CommandType.StoredProcedure;

//Inicializar Parameters p/ Evitar SqlInjection
cmdtimes.Parameters.AddWithValue("@P_IDTime", IdTime);
cmdtimes.Parameters.AddWithValue("@P_Time", Time);
cmdtimes.Parameters.AddWithValue("@P_Campeonatos", Campeonatos);
cmdtimes.Parameters.AddWithValue("@P_Img110110", img110110);
cmdtimes.Parameters.AddWithValue("@P_Img7676", img7676);
cmdtimes.Parameters.AddWithValue("@P_Img5555", img5555);

using (con)
{
con.Open();
cmdtimes.ExecuteNonQuery();//Linha que dá o erro

}
// con.Close();
}

///
/// Delete um Time
///
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]
public static void DeleteTimes(int IDTime)
{
// Initialize command
MySqlConnection con = new MySqlConnection(_connectionString);
MySqlCommand cmdtimes = new MySqlCommand("sp_TimesDelete", con);
cmdtimes.CommandType = CommandType.StoredProcedure;

// Initialize parameters
cmdtimes.Parameters.AddWithValue("@P_IDTime", IDTime);
using (con)
{
con.Open();
cmdtimes.ExecuteNonQuery();
}
}

}
}


Abaixo a procedure criada para o Metodo Update desta classe aonde esta o erro



CREATE PROCEDURE sp_TimesUpdate

(
P_IDTime INT,
P_Time VARCHAR (77),
P_Campeonatos VARCHAR (255),
P_Img110110 VARCHAR (100),
P_Img7676 VARCHAR (100),
P_Img5555 VARCHAR (100)



)

BEGIN
UPDATE Times SET
Time = P_Time,
Campeonatos = P_Campeonatos,
Img110110 = P_Img110110,
Img7676 = P_Img7676,
Img5555 = P_Img5555


Where
IDTime = P_IDTime;
END


E abaixo em anexo no arquivo .txt a connection string que eu preciso usar para que nos meus provedores de hospedagem sejam reconhecidas as procedures criadas no VS2008 com o driver do MySqlConnector 6.1.2.0, caso contrário da erro







Então a minha duvida é a seguinte baseado em minha procedure e minha classe na linha aonde acontece o erro o que eu preciso corrigir ou mudar para que não dê mais este erro e possa sêr usado o procedure bodies = false

Fico no aguardo e desde já agradeço

Exibições: 288

Anexos

Respostas a este tópico

Deve incluir no projeto uma referência ao provedor MySQL Connector/NET que foi instalado. Para isto clique com o botão direito do mouse sobre o projeto e selecione a opção Add Reference.
Mas esta referência já foi adicionada ao projeto mesmo antes deste erro, Referencias - MySql.Data e MySql.Web o que estaria faltando então.Fico no aguardo e desde já agradeço

RSS

© 2019   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço