asp.net access添加返回自递增id的实现方法第2/3页

 更新时间:2008年08月07日 23:26:52   作者:  
今天花了一点时间研究了这个问题,除此之外,还顺带研究了小孔子cms添加数据的过程,access添加返回自递增id也是从小孔子cms中研究出来的。

声明一个ArrayList类,并通过AddFieldItem方法可以将字段名,字段值添加进ArrayList。
复制代码 代码如下:

/// <summary>    
/// 产生OleDbCommand对象所需的参数    
/// </summary>    
protected void GenParameters()    
{    
    OleDbCommand oleCmd = (OleDbCommand)cmd;    
    if (this.alFieldItems.Count > 0)    
    {    
        for (int i = 0; i < alFieldItems.Count; i++)    
        {    
           oleCmd.Parameters.AddWithValue("@para" + i.ToString(),((DbKeyItem)alFieldItems[i]).fieldValue.ToString());    
        }    
    }    
}   

这个函数其实就是为了产生: 
this.cmd.Parameters.AddWithValue("@para1", "阿会楠");     
this.cmd.Parameters.AddWithValue("@para2","搜索吧");     
this.cmd.Parameters.AddWithValue("@para3","https://www.jb51.net");    
但用它方便多了,不用一个个去手写。而关键的函数: 
折叠展开
/// <summary>     
/// 根据当前alFieldItem数组添加一条记录,并返回添加后的ID     
/// </summary>     
/// <param name="_tableName">要插入数据的表名</param>     
/// <returns>返回添加后的ID</returns>     
public int insert(string _tableName)     
{     
    this.tableName = _tableName;     
    this.fieldName = string.Empty;     
    this.sqlText = "insert into " + this.tableName + "(";     
    string temValue = " values(";     
    for (int i = 0; i < this.alFieldItems.Count; i++)     
    {     
        this.sqlText += ((DbKeyItem)alFieldItems[i]).fieldName + ",";     
        temValue += "@para" + i.ToString() + ",";     
    }     
    //分别去掉,     
    this.sqlText = Input.CutComma(sqlText) + ")" + Input.CutComma(temValue) + ")" ;     
    //定义连接字符串     
    string myString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("App_Data/mycms.mdb");     
    OleDbConnection conn = new OleDbConnection(myString);     
    conn.Open();     
    this.cmd.Connection = conn;     
    this.cmd.CommandText = this.sqlText;     
    this.GenParameters();     
    try    
    {     
        this.cmd.ExecuteNonQuery();     
    }     
    catch (Exception ex)     
    {     
        //弹出错误信息,仅仅是为了帮助调试,可以throw new Exception(ex.Message)     
        common.salert(ex.Message);     

    }     
    int id = 0;     
    try    
    {     
        cmd.CommandText = "select @@identity as id";     
        id = Convert.ToInt32(cmd.ExecuteScalar());     
    }     
    catch (Exception ex)     
    {     
        common.salert(ex.Message);     
    }     
    conn.Close();     
    return id;     

}    
其实这个主要是等价于执行: 
SQL复制代码 
insert into db_news([news_Title],[news_Source],[news_Anthor]) values(@para0,@para1,@para2)      
//产生所要的参数     
this.GenParameters();     
select @@identity as id    
而CutComma函数的作用是为了除去最后的一个逗号。代码如下: 

/// <summary>     
/// 去除字符串最后一个','号     
/// </summary>     
/// <param name="chr">:要做处理的字符串</param>     
/// <returns>返回已处理的字符串</returns>     
public static string CutComma(string Input)     
{     
    return CutComma(Input, ",");     
}     

public static string CutComma(string Input, string indexStr)     
{     
    if (Input.IndexOf(indexStr) >= 0)     
        return Input.Remove(Input.LastIndexOf(indexStr));     
    else    
        return Input;     
}    

相关文章

  • NET NativeAOT 用法指南

    NET NativeAOT 用法指南

    NativeAOT 是 .NET 中一个非常棒和强大的工具,有了 NativeAOT,你可以以可预测的性能构建你的应用,同时节省资源(更低的内存占用和更小的二进制大小),本文介绍NET NativeAOT 指南,感兴趣的朋友一起看看吧
    2024-02-02
  • asp.net下生成99个不同的随机数

    asp.net下生成99个不同的随机数

    asp.net下生成99个不同的随机数...
    2007-04-04
  • .NET开发基础:从简单的例子理解泛型 分享

    .NET开发基础:从简单的例子理解泛型 分享

    .Net开发基础系列文章,对自己之前写过的代码备忘,如能给人予帮助,不甚荣幸。个人能力有限,如有差错或不足,请及时指正。
    2013-06-06
  • ASP.NET Core3.x API版本控制的实现

    ASP.NET Core3.x API版本控制的实现

    这篇文章主要介绍了ASP.NET Core3.x API版本控制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • asp.net core 使用 TestServer 来做集成测试的方法

    asp.net core 使用 TestServer 来做集成测试的方法

    这篇文章主要介绍了asp.net core 使用 TestServer 来做集成测试,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • .NET中方法的注意事项总结

    .NET中方法的注意事项总结

    这篇文章主要介绍了.NET中方法的注意事项,较为详细的分析了.NET中方法中较为常见的技巧、方法与注意事项,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • .NET实现热插拔功能(动态替换功用)方案实例

    .NET实现热插拔功能(动态替换功用)方案实例

    如果某个"功能"需要动态更新?这种动态更新,可能是需求驱动的,也可能是为了修改 BUG,面对这种场景,如何实现“热插拔”呢?先解释一下“热插拔”:在系统运行过程动态替换某些功能,不用重启系统进程。下面看例子
    2013-11-11
  • ASP.NET Core扩展库的相关功能介绍

    ASP.NET Core扩展库的相关功能介绍

    这篇文章主要介绍了ASP.NET Core扩展库的相关功能,帮助大家更好的理解和学习使用.Net技术,感兴趣的朋友可以了解下
    2021-03-03
  • aspx如果引用cs中的变量的方法

    aspx如果引用cs中的变量的方法

    引用cs中变量的实现方法
    2008-07-07
  • ASP.NET MVC使用Session会话保持表单状态

    ASP.NET MVC使用Session会话保持表单状态

    这篇文章介绍了ASP.NET MVC使用Session会话保持表单状态的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09

最新评论