Click here to Skip to main content
15,897,519 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
hi all,

I have windows application in dot net framework 2.0. I used mysql database with MySQL Workbench 6.0 CE and MySQL Connector Net 6.7.4 I have MySQlHelper Class for database related operation.

The Problem is that when I pass 9 parameter to store procedure through MySqlhelper class methods it works fine.But when I try to pass more than 9 parameters Mysqlhelper class code in one method MySqlCommandBuilder.DeriveParameters(Mysqlcommand cmd) throw Exception.'Unhandled type encountered'

In Store Procedure there are exact 44 parameters required to passed. What could be the possible issue?

pls check the code below :

C#
private static MySqlParameter[] DiscoverSpParameterSet(string spName, bool includeReturnValueParameter)
      {
          using (MySqlConnection cn = new MySqlConnection(SqlHelper.ConString))
          {
              using (MySqlCommand cmd = new MySqlCommand(spName, cn))
              {
                  cn.Open();

                  cmd.CommandType = CommandType.StoredProcedure;

                  MySqlCommandBuilder.DeriveParameters(cmd);


                  if (!includeReturnValueParameter)
                  {
                      //cmd.Parameters.RemoveAt(0);
                  }

                  MySqlParameter[] discoveredParameters = new MySqlParameter[cmd.Parameters.Count];
                  MySqlParameter[] abc = new MySqlParameter[cmd.Parameters.Count];

                  cmd.Parameters.CopyTo(discoveredParameters, 0);

                  return discoveredParameters;
              }
          }
      }



at this point
C#
private static MySqlParameter[] DiscoverSpParameterSet(string spName, bool includeReturnValueParameter)
      {
          using (MySqlConnection cn = new MySqlConnection(SqlHelper.ConString))
          {
              using (MySqlCommand cmd = new MySqlCommand(spName, cn))
              {
                  cn.Open();

                  cmd.CommandType = CommandType.StoredProcedure;

                  MySqlCommandBuilder.DeriveParameters(cmd);


                  if (!includeReturnValueParameter)
                  {
                      //cmd.Parameters.RemoveAt(0);
                  }

                  MySqlParameter[] discoveredParameters = new MySqlParameter[cmd.Parameters.Count];
                  MySqlParameter[] abc = new MySqlParameter[cmd.Parameters.Count];

                  cmd.Parameters.CopyTo(discoveredParameters, 0);

                  return discoveredParameters;
              }
          }
      }


At this point error throws : MySqlCommandBuilder.DeriveParameters(cmd);


Here i m calling sp :

VB
intResult = SqlHelper.ExecuteNonQuery("SP_Update_CampaignMaster", objEcampaignmaster.CampaignId,
                                                                                objEcampaignmaster.CampaignName,
                                                                                objEcampaignmaster.CallCenterId,
                                                                                objEcampaignmaster.Type,
                                                                                objEcampaignmaster.IsVoiceChannel,
                                                                                objEcampaignmaster.IsAgentInvolved,
                                                                                objEcampaignmaster.CallAllocation,
                                                                                objEcampaignmaster.Status,
                                                                                objEcampaignmaster.FlowId,
                                                                                objEcampaignmaster.ProspectBaseId,
                                                                                objEcampaignmaster.BusyFileName1,
                                                                                objEcampaignmaster.BusyFileName2,
                                                                                objEcampaignmaster.MSNNo,
                                                                                objEcampaignmaster.HoldTime,
                                                                                objEcampaignmaster.ServiceMin,
                                                                                objEcampaignmaster.ServiceMax,
                                                                                objEcampaignmaster.TotalSkillGroup,
                                                                                objEcampaignmaster.PacingRatio,
                                                                                objEcampaignmaster.URL,
                                                                                objEcampaignmaster.RealTimeValidation,
                                                                                objEcampaignmaster.TransferType,
                                                                                objEcampaignmaster.MoveCallBusy,
                                                                                objEcampaignmaster.MapName,
                                                                                objEcampaignmaster.CallReCycling,
                                                                                objEcampaignmaster.ProspectType,
                                                                                objEcampaignmaster.QueryFile,
                                                                                objEcampaignmaster.AutoUpload,
                                                                                objEcampaignmaster.RefreshDuration,
                                                                                objEcampaignmaster.AgentStTime,
                                                                                objEcampaignmaster.AgentEndTime,
                                                                                objEcampaignmaster.CallerId,
                                                                                objEcampaignmaster.DSNName,
                                                                                objEcampaignmaster.UploadType,
                                                                                objEcampaignmaster.RefreshTime,
                                                                                objEcampaignmaster.RootDirectory,
                                                                                objEcampaignmaster.Language,
                                                                                objEcampaignmaster.URL1,
                                                                                objEcampaignmaster.AvgCallTime,
                                                                                objEcampaignmaster.DateSortType,
                                                                                objEcampaignmaster.CampCallType,
                                                                                objEcampaignmaster.EmailId,
                                                                                objEcampaignmaster.CampDialType,
                                                                                objEcampaignmaster.FwEmailId);//,objEcampaignmaster.SMediaId




thank you.
Posted
Updated 17-Dec-13 19:28pm
v2
Comments
Sunny_Kumar_ 18-Dec-13 0:07am    
please show us your code so that we could be able to track it.
Member 10434230 18-Dec-13 0:10am    
It would be helpful if you can post some part of your code that you are trying
Christian Graus 21-Dec-13 23:30pm    
44 is a ridiculous number of parameters. Can't you break this up a little ? The other thing you might be able to do, is pass them all in one XML string (SQL Server definitely allows this)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900