/// <summary>
/// 構造函數
/// </summary>
/// <param name="LRServerData">ServerData 對象</param>
/// <param name="SQL">SQL語句</param>
/// <param name="OptionType">如何操作</param>
/// <param name="TableName">Table 別名</param>
internal APRecordSet(ServerData LRServerData, string SQL, tagUpdateMode OptionType, string TableName)
{
string mySQL = SQL;
if (SQL.IndexOf(' ') < 0)
{
if (OptionType == tagUpdateMode.RT_Insert)
mySQL = "select * from " + mySQL + " where 1=0 ";
else
mySQL = "select * from " + mySQL;
}
Lrs = LRServerData;
_ICursor = Lrs._DBConnection.OpenDataTableForUpdate(mySQL, out myDataAdapter, TableName);
myDataAdapter.RowUpdated += new SqlRowUpdatedEventHandler(myDataAdapter_RowUpdated);
myDataAdapter.RowUpdating += new SqlRowUpdatingEventHandler(myDataAdapter_RowUpdating);
_UserName = Lrs.UserName;
mEditMode = tagUpdateMode.RT_Browse;
}
private void myDataAdapter_RowUpdating(object sender, SqlRowUpdatingEventArgs e)
{
if (e.StatementType == StatementType.Insert)
{
SqlParameter myParamenter = new SqlParameter("@getuid", SqlDbType.Int);
myParamenter.Direction = ParameterDirection.Output;
e.Command.Parameters.Add(myParamenter);
e.Command.CommandText += ";select @getuid = SCOPE_IDENTITY()";
}
}
private void myDataAdapter_RowUpdated(object sender, SqlRowUpdatedEventArgs e)
{
if (e.StatementType == StatementType.Insert)
{
e.Row["uid"] = e.Command.Parameters["@getuid"].Value;
}
}
以上有看不懂的可以联系我
Msn: liuruxin2000@163.net
Google Talk : Liuruxin2002