新增一个人员,传入数据为:人员姓名,所属机构key;返回新增人员后的key。
/// <summary>
/// 新建人员,返回key
/// </summary>
/// <returns></returns>
public decimal CreatPersonForPersonName(String personName, decimal unitKey)
{
return AdoTemplate.Execute<decimal>
(
delegate(IDbDataAdapter dataAdapter)
{
if (dataAdapter is OracleDataAdapter)
{
OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
commandToUse.CommandText = CommandSQL.CreatPersonForPersonName;
commandToUse.BindByName = true;
commandToUse.Parameters.Add(":PERSON_NAME", OracleDbType.NVarchar2, ParameterDirection.Input).Value = personName;
commandToUse.Parameters.Add(":UNIT_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = unitKey;
commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Output);
if (commandToUse.ExecuteNonQuery() != 1)
{
throw new Exception("Dao内部出现错误");
}
return commandToUse.Parameters[":PERSON_KEY"].Value.ToDecimal(); ;
}
else
{
throw new Exception("Dao内部出现错误");
}
}
);
}
?
/* Formatted on 2010-5-20 11:22:02 (QP5 v5.114.809.3010) */
INSERT INTO PERSON_TBL PT (PT.PERSON_KEY,
PT.PERSON_NAME,
PT.PERSON_STATE,
PT.UNIT_KEY)
VALUES (GLOBAL_SEQUENCE.NEXTVAL,
:PERSON_NAME,
1,
:UNIT_KEY)
RETURNING PT.PERSON_KEY INTO :PERSON_KEY
?
?
/// <summary>
/// 得到person对象,根据key
/// </summary>
/// <param name="personKey"></param>
/// <returns></returns>
public Person GetPersonForPersonKey(decimal personKey)
{
DataTable dataTable = AdoTemplate.Execute<DataTable>
(
delegate(IDbDataAdapter dataAdapter)
{
if (dataAdapter is OracleDataAdapter)
{
OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
commandToUse.CommandText = CommandSQL.GetPersonForPersonKey;
commandToUse.BindByName = true;
commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = personKey;
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
return dataSet.Tables[0];
}
else
{
throw new Exception("Dao内部出现错误");
}
}
);
return (from dataRow in dataTable.AsEnumerable()
select new Person
{
PersonKey = dataRow.Field<decimal?>("PERSON_KEY"),
PersonName = dataRow.Field<string>("PERSON_NAME").toNullString(),
PersonNickname = dataRow.Field<string>("PERSON_NICKNAME").toNullString(),
PersonPhoto = dataRow.Field<byte[]>("PERSON_PHOTO").Base64Encode(),
PersonState = dataRow.Field<decimal?>("PERSON_STATE"),
UnitKey = dataRow.Field<decimal?>("UNIT_KEY"),
}).FirstOrDefault();
}
?
/* Formatted on 2010-5-24 16:53:30 (QP5 v5.114.809.3010) */
SELECT PT.PERSON_KEY,
PT.PERSON_NAME,
PT.PERSON_NICKNAME,
PT.PERSON_PHOTO,
PT.PERSON_STATE,
PT.UNIT_KEY
FROM PERSON_TBL PT
WHERE PT.PERSON_KEY = :PERSON_KEY
?
?
/// <summary>
/// 更新用户基本信息
/// </summary>
/// <param name="personKey"></param>
/// <param name="personName"></param>
/// <param name="personNickname"></param>
/// <param name="personState"></param>
/// <param name="personPhoto"></param>
/// <param name="unitKey"></param>
/// <returns></returns>
public Boolean UpdatePersonForPersonKey(decimal personKey, String personName, String personNickname, decimal? personState, byte[] personPhoto, decimal? unitKey)
{
return AdoTemplate.Execute<Boolean>
(
delegate(IDbDataAdapter dataAdapter)
{
if (dataAdapter is OracleDataAdapter)
{
OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
commandToUse.CommandText = CommandSQL.UpdatePersonForKey;
commandToUse.BindByName = true;
commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = personKey;
commandToUse.Parameters.Add(":PERSON_NAME", OracleDbType.NVarchar2, ParameterDirection.Input).Value = personName;
commandToUse.Parameters.Add(":PERSON_NICKNAME", OracleDbType.NVarchar2, ParameterDirection.Input).Value = personNickname;
commandToUse.Parameters.Add(":PERSON_STATE", OracleDbType.Decimal, ParameterDirection.Input).Value = personState;
commandToUse.Parameters.Add(":PERSON_PHOTO", OracleDbType.Blob, ParameterDirection.Input).Value = personPhoto;
commandToUse.Parameters.Add(":UNIT_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = unitKey;
if (commandToUse.ExecuteNonQuery() != 1)
{
throw new Exception("Dao内部出现错误");
}
return true;
}
else
{
throw new Exception("Dao内部出现错误");
}
}
);
}
?
/* Formatted on 2010-5-6 13:28:26 (QP5 v5.114.809.3010) */
UPDATE PERSON_TBL PT
SET PT.PERSON_NAME = :PERSON_NAME,
PT.PERSON_NICKNAME = :PERSON_NICKNAME,
PT.PERSON_STATE = :PERSON_STATE,
PT.PERSON_PHOTO = :PERSON_PHOTO,
PT.UNIT_KEY = :UNIT_KEY
WHERE PT.PERSON_KEY = :PERSON_KEY
?
public Boolean DeleteUserForPersonKey(decimal personKey)
{
return AdoTemplate.Execute<Boolean>
(
delegate(IDbDataAdapter dataAdapter)
{
if (dataAdapter is OracleDataAdapter)
{
OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
commandToUse.CommandText = CommandSQL.DeleteUserForPersonKey;
commandToUse.BindByName = true;
commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = personKey;
if (commandToUse.ExecuteNonQuery() != 1)
{
throw new Exception("Dao内部出现错误");
}
return true;
}
else
{
throw new Exception("Dao内部出现错误");
}
}
);
}
?
DELETE USER_TBL UT WHERE UT.PERSON_KEY = :PERSON_KEY
?
?