算术运算导致溢出错误c#

时间:2013-01-16 12:56:57

标签: c# exception-handling try-catch overflowexception

您好我正在使用c#构建一个连接远程mysql服务器的应用程序。

以下是代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace login
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        } 

        private void button1_Click(object sender, EventArgs e)
        {
            if (tryLogin(textBox1.Text, textBox2.Text) == true)
            {
                MessageBox.Show("Authed!");
            }
            else
            {
                MessageBox.Show("Auth Failure.");

            }

        }
        public bool tryLogin(string username, string password)
        {
MySqlConnection con = new MySqlConnection("host=myhostname;user=myusername;password=mypassword;database=mydatabase;");
MySqlCommand cmd = new MySqlCommand("SELECT * FROM test WHERE username = '" + username + "' AND password = '" + password + "';");
            cmd.Connection = con;
            con.Open();
            MySqlDataReader reader = cmd.ExecuteReader();
            if (reader.Read() != false)
            {
                if (reader.IsDBNull(0) == true)
                {
                    cmd.Connection.Close();
                    reader.Dispose();
                    cmd.Dispose();
                    return false;
                }
                else
                {
                    cmd.Connection.Close();
                    reader.Dispose();
                    cmd.Dispose();
                    return true;

                }
            }
            else
            {
                return false;
            }
        }
    }
}

它显示以下错误:

“OverflowException未处理

算术运算导致溢出“

我这里没有使用任何算术运算。任何帮助???

1 个答案:

答案 0 :(得分:0)

检查test中的mysql server表。

确保所有字段在usernamepassword列中都有有效值。

<强>更新

尝试使用您的连接字符串包含选项"Use Pipe=false;"。然后它会打开连接就好了。

我希望这会对你有所帮助。