這是我在DataAccess Layer中編寫的函數,我也使用WCF概念.. 這裏我必須將一些值插入到RequisitionTable中,並且我已將該表從該表中返回到另一個表中。如何在向表中插入數據時獲取由表生成的Id?
在數據庫表我指定RequisitionID列的PrimaryKey和自動遞增1。 在StoredProcedure的,我宣佈RequisitionID作爲@RequisitionID int的列
public RequisitionDTO createRequisition(RequisitionDTO requisitionDTO)
{
Logging.logDebug("RequisitionDA: createRequisition initiated");
DataTable requisitionDataTable = new DataTable();
try
{
Database dataBase = CommonDB.getApplicationDatabase();
//Insert and Store Id into variable 'i'
int i= dataBase.ExecuteNonQuery("SP_requisitionInsert",
requisitionDTO.FirstName, requisitionDTO.MiddleName,
requisitionDTO.LastName,requisitionDTO.Address);
int RequisitionID = Convert.ToInt16(i);
}
catch(exception e)
{
//
}
你使用了哪個數據庫? – 2011-05-18 06:40:41
int i = dataBase,ExecuteNonQuery(...); int RequisitionID = Convert.ToInt16(i);你認爲這個代碼應該做什麼? :o – 2011-05-18 06:51:19
您使用的是什麼數據訪問層? ExecuteNonQuery'的返回值很可能是受影響的行數或存儲過程的返回值,當存儲過程完成時,這兩者都不是'@ RequisitionID'參數的值。 – 2011-05-18 07:01:01