0
我具有低於其給出MySQL錯誤1064插入在讀取數據
貼切的程序是5個字節的varchar,量是雙,paytype如SMALLINT(可以是用於瞬間1或2),作爲paydate日期,解釋是表中定義的50字節varchar
我調試4字節字符串數據的時候觀察到的值爲apt,金額爲40,paytype爲1,日期爲01-02-2014,解釋約爲20字節串。
爲什麼它給出錯誤1064.
因爲我正在讀數據?
正如你所看到的,我使用2個不同的conn連接,我讀取數據和conn1插入。
private void CreateGlobalDebt()
{
MySqlConnection conn = new MySqlConnection(Pvar.cs);
MySqlConnection conn1 = new MySqlConnection(Pvar.cs);
conn.Open();
conn1.Open();
MySqlCommand cmd = new MySqlCommand("SELECT apt FROM building ORDER BY apt", conn);
MySqlDataReader reader = cmd.ExecuteReader();
MySqlTransaction trans = conn1.BeginTransaction();
while(reader.Read())
{
string apt = reader["apt"].ToString();
MySqlCommand cmd1 = new MySqlCommand("INSERT parameters (apt,amount,paytype,paydate,explanation) VALUES (@apt,@amount,@paytype,@paydate,@explanation",conn1);
cmd1.Parameters.Add("@apt", MySqlDbType.VarChar,5).Value = apt;
cmd1.Parameters.Add("@amount", MySqlDbType.Double).Value = Convert.ToDouble(_textBox[0].Text);
cmd1.Parameters.Add("@paytype", MySqlDbType.Int16).Value = PayType;
cmd1.Parameters.Add("@paydate", MySqlDbType.Date).Value = Convert.ToDateTime(_textBox[2].Text);
cmd1.Parameters.Add("@explanation", MySqlDbType.VarChar, 50).Value = _textBox[3].Text.ToString();
try
{
cmd1.ExecuteNonQuery();
}
catch (MySqlException e)
{
trans.Rollback();
conn.Close();
conn1.Close();
MessageBox.Show(e.Number.ToString() + " -> " + e.Message.ToString());
return;
}
cmd1.Parameters.Clear();
}
trans.Commit();
conn.Close();
conn1.Close();
}
NOT INTO,但在最後謝謝:))))) 因爲almmost所有我的INSERT都沒有INTO,但它的工作除了這裏有一個parathesis少:) –
很高興你得到它的工作!我建議使用'INSERT INTO',因爲[它更標準](http://stackoverflow.com/questions/233919/insert-vs-insert-into) –