2013-06-24 69 views
1

当我按下按钮时,出现以下C#代码错误。它是夹在我的try-catch:MySQL&C#MySql.Data.MySqlClient.MySqlException catch in try catch

型“MySql.Data.MySqlClient.MySqlException”的第一次机会异常出现在MySql.Data.dll

我想知道这可能是什么那是错的。任何帮助表示赞赏!

方法:

private void addChildBtn_Click(object sender, EventArgs e) 
{ 
    string firstName = firstNameAdd.Text; 
    int ageComboIndex = ageComboAdd.SelectedIndex; 
    string age = this.ageComboAdd.Items[ageComboIndex].ToString(); 

    int genderComboIndex = genderComboAdd.SelectedIndex; 
    string gender = this.genderComboAdd.Items[genderComboIndex].ToString(); 

    string address = addressAdd.Text; 

    string caregiverOneName = caregiver1NameAdd.Text; 
    string caregiverOnePhone = caregiver1PhoneAdd.Text; 
    string caregiverTwoName = caregiver2NameAdd.Text; 
    string caregiverTwoPhone = caregiver2PhoneAdd.Text; 

    server = "localhost"; 
    port = "3306"; 
    database = "childeren"; 
    uid = "root"; 
    password = "password"; 

    MySqlConnection connection2 = new MySqlConnection("Server=" + server + ";" + 
     "Port=" + port + ";" + "Database=" + database + ";" + 
     "Uid=" + uid + ";" + "Password=" + password + ";"); 

    // Perform databse operations 
    try 
    { 
     connection2.Open(); 
     string query = "INSERT INTO childdatabase (name2, age, gender, " + 
      "adress, caregiver1Name, caregiver1Phone, caregiver2Name, " +  
      "caregiver2Phone) VALUES('" + firstName + "','" + age + 
      "','" + gender + "','" + address + "','" + caregiverOneName + 
      "','" + caregiverOnePhone + "','" + caregiverTwoName + 
      "','" + caregiverTwoPhone + "')"; 
     MySqlCommand cmd = new MySqlCommand(query, connection2); 

     cmd.ExecuteNonQuery(); 
     connection2.Close(); 
    } 

    catch (Exception ex) 
    { 
     MessageBox.Show("Failed"); 
     //updateStatus(ex.Message.ToString()); 
    } 

    connection2.Close(); 
} 

的MySQL创建表设置:

create database childeren; 
use childeren; 
CREATE TABLE childDatabase 
(
    id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    name2 VARCHAR(50), 
    age VARCHAR(3), 
    gender VARCHAR(6), 
    adress VARCHAR(50), 
    caregiver1Name VARCHAR(50), 
    caregiver1Phone VARCHAR(10), 
    caregiver2Name VARCHAR(50), 
    caregiver2Phone VARCHAR(10) 
); 
+0

你可以发布你的错误_actually_是什么。你的错误信息不会告诉我们 – gunr2171

+1

ex.Message.ToString()里面是什么? – Edper

+0

@ gunr2171就是这样,我说的例外是我唯一展示的东西,因此我为什么这么困惑。 – ScorpioBlue

回答

0

你忘了在你的查询字符串一(双)报价?具体在caregiver2Phone之前。

string query = "INSERT INTO childdatabase (name2, age, gender, " + 
     "adress, caregiver1Name, caregiver1Phone, caregiver2Name, " +  
     "caregiver2Phone) VALUES('" + firstName + "','" + age + 
     "','" + gender + "','" + address + "','" + caregiverOneName + 
     "','" + caregiverOnePhone + "','" + caregiverTwoName + 
     "','" + caregiverTwoPhone + "')"; 
+0

你确定吗?我看不到,找到你的意思。直接指出? – ScorpioBlue

+0

他是正确的,因为你上面的代码缺少一个引号,但我不认为你的代码实际上是编译的,如果它被写成如图所示。 – brianestey

+0

@Edper,那是我的错。编辑该行时,我搞砸了。检查原始来源。如果一个> 2k用户想要快速修复,请做。 – gunr2171