Bug #64551 | Connector Throws NullReferenceException On ExecuteReader | ||
---|---|---|---|
Submitted: | 5 Mar 2012 15:48 | Modified: | 23 Mar 2012 20:23 |
Reporter: | John Carroll | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | Connector / NET | Severity: | S2 (Serious) |
Version: | 6.4.4 | OS: | Windows |
Assigned to: | Fernando Gonzalez.Sanchez | CPU Architecture: | Any |
[5 Mar 2012 15:48]
John Carroll
[5 Mar 2012 16:17]
Valeriy Kravchuk
Based on version, this is probably about Connector/Net. Please, correct me if this my assumption is wrong.
[5 Mar 2012 19:48]
John Carroll
You are correct. Thanx for the quick response.
[22 Mar 2012 22:55]
Fernando Gonzalez.Sanchez
Thanks John for your report, However, I need you to provide more details (like script & code sample), because I wasn't able to reproduce as such. This is what I tried (in Connector/NET 6.4.4, MySql 5.5.16): MySqlConnection con = new MySqlConnection( ... con.Open(); string sql = @"drop function if exists MyTwice; create function MyTwice( val int ) returns int begin return val * 2; end;"; MySqlCommand cmd = new MySqlCommand(sql, con); cmd.ExecuteNonQuery(); cmd.CommandText = "MyTwice"; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("val", MySqlDbType.Int32); cmd.Parameters.Add("@p", MySqlDbType.Int32); cmd.Parameters[1].Direction = ParameterDirection.ReturnValue; cmd.Parameters[0].Value = "a"; // 5; cmd.ExecuteNonQuery(); I just get the Format Exception: Test 'MySql.Data.MySqlClient.Tests.CommandTests.InvalidCastBadMessage' failed: System.FormatException : Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.String.System.IConvertible.ToInt32(IFormatProvider provider) at System.Convert.ToInt32(Object value) Types\MySqlInt32.cs(95,0): at MySql.Data.Types.MySqlInt32.MySql.Data.Types.IMySqlValue.WriteValue(MySqlPacket packet, Boolean binary, Object val, Int32 length) parameter.cs(412,0): at MySql.Data.MySqlClient.MySqlParameter.Serialize(MySqlPacket packet, Boolean binary, MySqlConnectionStringBuilder settings) Statement.cs(225,0): at MySql.Data.MySqlClient.Statement.SerializeParameter(MySqlParameterCollection parameters, MySqlPacket packet, String parmName) Statement.cs(177,0): at MySql.Data.MySqlClient.Statement.InternalBindParameters(String sql, MySqlParameterCollection parameters, MySqlPacket packet) Statement.cs(109,0): at MySql.Data.MySqlClient.Statement.BindParameters() Statement.cs(86,0): at MySql.Data.MySqlClient.Statement.Execute() PreparableStatement.cs(123,0): at MySql.Data.MySqlClient.PreparableStatement.Execute() command.cs(481,0): at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) command.cs(399,0): at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() command.cs(342,0): at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() Thanks.
[23 Mar 2012 0:55]
John Carroll
Apologies for putting you through this effort. Had someone check by project. It seems I had out of date version of Connector/Net. Loaded latest version. Output as expected. Thanx for your efforts. John Carroll
[23 Mar 2012 20:23]
Fernando Gonzalez.Sanchez
No problem John, I'm closing this as "cannot repeat", however if you find a case when it actually happens, feel free to reopen.