-3
我有這樣的情況下連接:無法打開使用「使用VAR參數化查詢」
我有一個名爲「入住日期」一個叫「Saidas」表。兩者都有 列「數據」和「霍拉」。考慮到這一點,因爲「entradas」的「數據」和「hora」欄表示在該日期和時間加入的汽車,並且「saidas」 的列「data」和「hora」的值是意思是插入,因爲我點擊一個按鈕,插入當前日期和時間 我正在請求一個sql語法,可以將 值「data」和「hora」插入表「saidas」並更新值爲 「入住日期」被稱爲「西」,這是等於0,我希望它變成 1按下按鈕
,我有這個程序:
CREATE DEFINER=`root`@`localhost` PROCEDURE `entradas_sai`(
IN ID_VEICULO VARCHAR(45), OUT retcode INT)
BEGIN
DECLARE _rollback BOOL DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET _rollback = 1;
START TRANSACTION;
INSERT INTO SAIDAS(data, hora) VALUES(date(now()) ,time(now()));
UPDATE ENTRADAS SET SAI=1;
IF '_rollback' THEN
SET retcode = 0;
ROLLBACK;
ELSE
SET retcode = 1;
COMMIT;
END IF;
END
這是我實際的代碼來對按鈕點擊運行它:
private void cmdSaida_Click(object sender, EventArgs e)
{
using (var cn = new MySqlConnection("server=localhost;user id=root;password=12345;persistsecurityinfo=True;database=portaria;allowuservariables=True"))
{
cn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "entradas_sai";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ID_veiculo", Grid1.SelectedCells[1].Selected);
cmd.Parameters["@id_veiculo"].Direction = ParameterDirection.Input;
cmd.Parameters.AddWithValue("@retcode", MySqlDbType.Int32);
cmd.Parameters["@retcode"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
var res = cmd.Parameters["@retcode"].Value;
cn.Close();
}
}
而我此刻的問題是,當我按一下按鈕,它不執行我的程序既不是我的命令來打開或關閉連接。任何消化?
編輯:經過一番研究,我發現,我的實際過程將所有的值從0到1列「西」我怎麼能做到這一點,因此只能更改選定的網格行值的基礎上,「ID_Entrada」
你得到任何錯誤/異常消息? – Izzy
當你追蹤它時會發生什麼? – BugFinder
唯一的事情,視覺工作室告訴我,它的連接必須在執行任何SQL功能之前運行...但我打開它,因爲它去了,並在斷點調試,它傳遞到該點上的cn.Open( );並關閉字符串,禁用所有的代碼... –