【发布时间】:2016-08-04 07:30:53
【问题描述】:
我正在尝试执行存储过程并返回最后插入的 id,但每次结果都是 0。
这就是我的做法:
public long InsertActivity(cActivities objAct)
{
long lastID = 0;
try
{
MySqlCommand myCmd = connection.CreateCommand();
connection.Open();
myCmd.CommandText = "add_activity";
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Parameters.AddWithValue("@TGUID", objAct.TGUID);
myCmd.Parameters.AddWithValue("@TItem", objAct.TItemID);
myCmd.Parameters.AddWithValue("@ActDesc", objAct.ActivityDesc);
myCmd.Parameters.AddWithValue("@DateStart", objAct.DateStart);
myCmd.Parameters.AddWithValue("@DateEnd", objAct.DateEnd);
myCmd.Parameters.AddWithValue("@ActNote", objAct.Note);
myCmd.Parameters.AddWithValue("@Category", objAct.Category);
if (myCmd.ExecuteNonQuery() > 0)
{
lastID = myCmd.LastInsertedId;
myCmd.Parameters.Clear();
connection.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("ERROR: " + ex.Message);
}
return lastID;
}
这里是 add_activity 过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `add_activity`(IN `TGuid` VARCHAR(50), IN `TItem` INT, IN `ActDesc` VARCHAR(100), IN `DateStart` DATE, IN `DateEnd` DATE, IN `ActNote` VARCHAR(500), IN `Category` VARCHAR(200), OUT `_lastID` BIGINT)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
INSERT INTO activities (TGUID, TItemID, Descr, DateStart, DateEnd, Note, Category) VALUES (TGuid, TItem, ActDesc, DateStart, DateEnd, ActNote, Category);
我认为问题在于我正在调用存储过程。而不是 sql 命令。
【问题讨论】:
-
你能显示
add_activitySP吗?
标签: c# mysql stored-procedures lastinsertid