当前位置: 首页 > 面试题库 >

无效的转换异常未处理的MySQL

拓拔俊艾
2023-03-14
问题内容

当我运行程序时,出现此错误:

未处理无效的强制转换异常

这是用于填充数据库的表单的一部分,而Visual Studio会将int cast标记为错误

MySqlConnection conectar = new MySqlConnection("server=127.0.0.1; database=gymne; Uid=root; pwd=0000000000;");
using (MySqlCommand sqlCommand = new MySqlCommand("SELECT COUNT(*) from Socios where Nombre like @pNombre AND Apellido like @pApellido", conectar))
{
     conectar.Open();
     sqlCommand.Parameters.AddWithValue("@pNombre", txtNombre.Text);
     sqlCommand.Parameters.AddWithValue("@pApellido", txtApellido.Text);
     int UsuarioExiste = (int)sqlCommand.ExecuteScalar();//<----"error here" 
     if (UsuarioExiste > 0)
     {
         MessageBox.Show("El Socio ya existe!!", "No Guardado", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }

问题答案:

强烈 怀疑,您LIKE用错误的方式参数化了您的零件。您%..%至少需要弄清楚您试图获取包含那些字符串的值。喜欢;

sqlCommand.Parameters.AddWithValue("@pNombre", "%" + txtNombre.Text + "%");
sqlCommand.Parameters.AddWithValue("@pApellido", "%" + txtApellido.Text + "%");

不要使用AddWithValue尽可能多的东西。有时它 可能会
产生意外和令人惊讶的结果
。使用Add方法重载来指定参数类型及其大小。

也可以使用using语句自动处理连接和命令,而不是手动调用(可能在代码中的某个地方)CloseDispose方法

顺便说一下,请注意,在MySQL中COUNT(*)返回BIGINT并且此类型Int64在.NET端映射。正如史蒂夫(Steve)所提到的,您可以解析此值,而不必进行强制转换。

int UsuarioExiste = int.Parse(sqlCommand.ExecuteScalar());

或者您可以将您定义UsuarioExistelong看起来更一致的(?)我想。

long UsuarioExiste = (long)sqlCommand.ExecuteScalar();


 类似资料:
  • 问题内容: 我正在开发一个Android应用,该应用必须将json格式的Java对象保存到SQLite数据库中。我为此操作编写了代码,然后他们必须提取Json对象并将其重新转换为Java对象。当我尝试调用将json对象反序列化为字符串的方法时,我在Android Studio中发现此错误: 当我尝试捕获程序运行但不反序列化json对象时。 这是该方法的代码: 你能帮我吗? 问题答案: 是的,您需要

  • 我希望下面的代码在其中一个方法<code>callfuture1()</code>或<code>callfuture2()</code>抛出异常时返回自定义消息。我的理解是,如果任何一个未来失败,都将是失败的未来。 但是,当 引发异常时。 不执行。相反,我看到调用堆栈停止在 中的代码行,其中发生了异常并返回了标准内部错误。为什么会这样? ====更新==== 我从响应中看到,潜在的问题是异常被抛出

  • 我正在尝试格式化我的日期和时间。 我的代码 its显示错误未处理异常:格式异常:无效日期格式 现在它看起来像这样

  • 在将其标记为副本之前,请阅读问题。 我在我的谷歌控制台中设置了SHA1和SHA256。 我已经尝试了很多方法,但仍然面临错误。 未处理的异常: 平台异常(sign_in_failed, 还尝试了Flutter和google_sign_in插件:PlatformException(sign_in_failed,com.google.android.gms.common.api.ApiExceptio

  • 我主要是为技术精明的人编写一个小工具,例如程序员、工程师等,因为这些工具通常是快速的,随着时间的推移,我知道会有未处理的异常,用户不会介意。我希望用户能够向我发送回溯,这样我就可以检查发生了什么,并可能改进应用程序。 我通常做wxPython编程,但我最近做了一些Java。我已经将

  • 问题内容: 我目前正在学习如何正确执行自定义异常的过程,偶然发现了一个问题。每当我尝试利用引发此自定义异常的类的对象时,IDE的调试器(我使用的是IntelliJ想法)都会说“未处理的异常:InsertExceptionName()”。代码以简化的方式看起来像这样。在这种情况下,如果随机生成的数字<0.5,它将返回一个异常,否则返回一个数字,但不会这样做。我想念什么? -- -- 问题答案: 您是