服务器之家

服务器之家 > 正文

asp.net中获取新增加记录的ID Access版

时间:2019-09-28 12:27     来源/作者:asp.net教程网

这里参考了Erist.Protal里的代码 

复制代码代码如下:


/// <summary> 
/// 增加新的文章 
/// </summary> 
/// <param name="ArticleTitle"></param> 
/// <param name="Author"></param> 
/// <param name="ArticleFrom"></param> 
/// <param name="Creator"></param> 
/// <param name="ModifyBy"></param> 
/// <param name="Content"></param> 
/// <param name="ChannelID"></param> 
/// <param name="IsOnTop"></param> 
/// <param name="IsCommend"></param> 
/// <param name="IsCheck"></param> 
/// <param name="Keyword"></param> 
/// <param name="ArticleIntroduction"></param> 
/// <returns>新增加文章的ID</returns> 
public int AddArticle(string ArticleTitle, 
string Author, 
string ArticleFrom, 
int Creator, 
int ModifyBy, 
string Content, 
int ChannelID, 
bool IsOnTop, 
bool IsCommend, 
bool IsCheck, 
string Keyword, 
string ArticleIntroduction) 

int ArticleID =-1; 
//格式化HTML标记 
ArticleTitle=System.Web.HttpUtility.HtmlEncode(ArticleTitle); 
Author=System.Web.HttpUtility.HtmlEncode(Author); 
Keyword=System.Web.HttpUtility.HtmlEncode(Keyword); 

OleDbConnection OleCon=new OleDbConnection(Globals.ConnectString); 
OleDbCommand OleCmd=new OleDbCommand(); 
OleCmd.CommandType=System.Data.CommandType.StoredProcedure; 
OleCmd.Connection=OleCon; 
OleCmd.CommandText="AddArticle"; 
//取得下一个ID号 
ArticleID= Erist.Common.Data.DataProvider.GetAutoID("ArticleID","Article",Globals.ConnectString); 
OleCmd.Parameters.Add("ArticleID",ArticleID); 
OleCmd.Parameters.Add("ArticleTitle",ArticleTitle); 
OleCmd.Parameters.Add("Author",Author); 
OleCmd.Parameters.Add("ArticleFrom",ArticleFrom); 
OleCmd.Parameters.Add("Creator",Creator); 
OleCmd.Parameters.Add("ModifyBy",ModifyBy); 
OleCmd.Parameters.Add("Content",Content); 
OleCmd.Parameters.Add("ChannelID",ChannelID); 
OleCmd.Parameters.Add("IsOnTop",IsOnTop); 
OleCmd.Parameters.Add("IsCommend",IsCommend); 
OleCmd.Parameters.Add("IsCheck",IsCheck); 
OleCmd.Parameters.Add("Keyword",Keyword); 
//2004-2-2将文章增加简介属性 姜勇 
OleCmd.Parameters.Add("ArticleIntroduction",ArticleIntroduction); 
//执行 
Erist.Common.Data.DataProvider.ExecNonQueryOle(OleCmd); 
return ArticleID; 


注意看背景色为橙色的地方调用了Erist.Common.Data.DataProvider.GetAutoID() 
下面是此方法的代码 

复制代码代码如下:


/**//// <summary> 
/// 取得数据集 
/// </summary> 
/// <param name="SqlCmd">执行命令的SqlCommand</param> 
/// <returns>返回取得的数据集</returns> 
public static DataSet GetDataSetOle(OleDbCommand OleCmd ) 

OleDbDataAdapter t_DataAdapter ; 
DataSet t_DataSet=new DataSet(); 
try 

if (OleCmd.Connection.State != ConnectionState.Open) OleCmd.Connection.Open(); 
t_DataAdapter = new OleDbDataAdapter(OleCmd); 
t_DataAdapter.Fill(t_DataSet); 
return t_DataSet; 

catch(Exception ex ) 
//捕获数据层错误并返回给上一层。 

throw ex; 

finally 

//断开链接 
if (OleCmd.Connection.State == ConnectionState.Open) OleCmd.Connection.Close(); 




/**//// <summary> 
/// 取得某一表的最大字段值 
/// </summary> 
/// <param name="FieldName"></param> 
/// <param name="TableName"></param> 
/// <returns></returns> 
public static int GetAutoID(string FieldName ,string TableName,string ConnectString) 

DataSet ds; 
OleDbConnection OleCon=new OleDbConnection(ConnectString); 
OleDbCommand OleCmd=new OleDbCommand(); 
OleCmd.CommandText="Select Max(" + FieldName +") as MaxID from " + TableName; 
OleCmd.CommandType=System.Data.CommandType.Text; 
OleCmd.Connection=OleCon; 
ds=GetDataSetOle(OleCmd); 
if( ds.Tables[0].Rows[0][0] == DBNull.Value) 

return 1; 

else 

return int.Parse(ds.Tables[0].Rows[0][0].ToString())+ 1; 


根据传过来的FieldName 和TableName 来读数据库当前最大的FieldName 如果没有返回1 
有则在此基础上+1 因为是要获取要添加记录的唯一FieldName 
此处FieldName是ArticleID 
此方法还是不错的.

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
返回顶部