这是我在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