为什么我得到:命令执行期间遇到致命错误

时间:2015-10-10 15:42:06

标签: c# mysql

每当我运行我的代码时,它都会返回此特定错误

  

用户代码未处理MySqlException:命令执行期间遇到致命错误

指向

long count = (long)cmd1Database.ExecuteScalar();

这可能是什么问题?我对c#完全不熟悉。任何帮助将不胜感激。

string constring = "Database=chtbuster;Data Source=localhost;User Id=root;Password='';";
string count1 = "SELECT COUNT(hostName) FROM chtbuster.processtable  WHERE hostName = @machineName; ";
using (MySqlConnection conDataBase = new MySqlConnection(constring))
{
    conDataBase.Open();

    string insertprocess = "INSERT INTO chtbuster.processtable(processID,processFileName,processName,processPath,hostName) VALUES (@processID, @fileName, @exeFile, @filePath, @machineName);";
    MySqlCommand cmd2Database = new MySqlCommand(insertprocess, conDataBase);

    cmd2Database.Parameters.AddWithValue("@processID", processID);
    cmd2Database.Parameters.AddWithValue("@filename", fileName);
    cmd2Database.Parameters.AddWithValue("@exeFile", exeFile);
    cmd2Database.Parameters.AddWithValue("@filePath", filePath);
    cmd2Database.Parameters.AddWithValue("@machineName", machineName);
    cmd2Database.ExecuteNonQuery();

    //string checkname = "SELECT hostName FROM chtbuster.hostnametable WHERE (hostName=@machineName); ";
    MySqlCommand cmd1Database = new MySqlCommand(count1, conDataBase);
    long count = (long)cmd1Database.ExecuteScalar();
    if (count == 1)
    {
        listBox1.Items.Add(new MyListBoxItem(Color.Gold, count + "st warning" + machineName + " has opened " + fileName + " from path " + filePath));
        if(machineName == pc1.Text)
        {
            pc1.Image = Image.FromFile("../../firstwarning.png");
        }
        else if (machineName == pc2.Text)
        {
            pc2.Image = Image.FromFile("../../firstwarning.png");
        }
        else
        {
            pc3.Image = Image.FromFile("../../firstwarning.png");
        }

    }
    else if (count == 2)
    {
        listBox1.Items.Add(new MyListBoxItem(Color.Orange, count + "nd warning" + machineName + " has opened " + fileName + " from path " + filePath));
        if (machineName == pc1.Text)
        {
            pc1.Image = Image.FromFile("../../secondwarning.png");
        }
        else if (machineName == pc2.Text)
        {
            pc2.Image = Image.FromFile("../../secondwarning.png");
        }
        else
        {
            pc3.Image = Image.FromFile("../../secondwarning.png");
        }
    }
    else if (count == 3)
    {
        listBox1.Items.Add(new MyListBoxItem(Color.Firebrick, count + "rd warning" + machineName + " has opened " + fileName + " from path " + filePath));
        if (machineName == pc1.Text)
        {
            pc1.Image = Image.FromFile("../../thirdwarning.png");
        }
        else if (machineName == pc2.Text)
        {
            pc2.Image = Image.FromFile("../../thirdwarning.png");
        }
        else
        {
            pc3.Image = Image.FromFile("../../thirdwarning.png");
        }
    }
    else { listBox1.Items.Add(new MyListBoxItem(Color.Gray, count + "th warning" + machineName + " has opened " + inputfile + " from path " + filePath));  }
    conDataBase.Close();

1 个答案:

答案 0 :(得分:1)

您忘记添加cmd1Database命令所需的参数

 ----
 string count1 = @"SELECT COUNT(hostName) FROM chtbuster.processtable  
                   WHERE hostName = @machineName; ";
 MySqlCommand cmd1Database = new MySqlCommand(count1, conDataBase);
 cmd1Database.Parameters.AddWithValue("@machineName", machineName);
 long count = (long)cmd1Database.ExecuteScalar();
 ----