获取ACCESS数据库中自增变量的值

/// <summary>
        /// 获取自增变量值
        /// </summary>
        /// <returns>自增变量值</returns>
        public int getReturnIdentity()
        {
            //Conn_Open();
            string strCMDtext = @"select @@identity";
            OleDbCommand cmd_sql = new OleDbCommand(strCMDtext, conn_1);
            int i = int.Parse(cmd_sql.ExecuteScalar().ToString());
            cmd_sql.Dispose();
            return i;
            //conn_close();
        }

Access中获取新添加行的自动编号  (转自http://www.cnblogs.com/hongyuniu/archive/2008/03/08/1096638.html)

在SQL Server里有个全局变量 @@IDENTITY,他用来记录当前链接产生的自动加1的值,这个变量在access里也可以用,现在我们就用这个@@Identity在事务中获取新添加行的自动编号。需要注意的是获取自动编号的命令和插入记录的命令必须是在同一次打开数据库连接时执行否则Select @@Identity 返回为0。代码如下:

string sCon;
sCon = System.Configuration.ConfigurationManager.ConnectionStrings["access"].ConnectionString;
con = new OleDbConnection(sCon);
con.Open();
            int i = -1;
            OleDbCommand cmd = con.CreateCommand();
            OleDbTransaction tr = con.BeginTransaction();
            cmd.Transaction = tr;
            cmd.CommandText = …………;
            try
            {
                i = cmd.ExecuteNonQuery();
                if (i > 0)
                {
                    cmd.CommandText = @"select @@identity";
                    i = int.Parse(cmd.ExecuteScalar().ToString());
                }
                tr.Commit();
            }
            catch (Exception e)
            {
                
                MessageBox.Show(e.Message);
            } 
            this.Close();
            return i;

获取ACCESS数据库中自增变量的值

时间: 2024-10-27 01:37:36

获取ACCESS数据库中自增变量的值的相关文章

C#获取Access数据库中的所有表名和列名

//C#获取Access数据库中的所有表名和列名    string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=E:\report20100819\report20100819.mdb";    OleDbConnection Conn = new OleDbConnection(ConnectionString);    Conn.Open(); DataTable

获取Access数据库中的用户表名

SQL语句为 SELECT Name FROM MSysObjects WHERE Type=1 AND Flags=0; 这本来没啥问题,但在代码里执行可能会因为权限报错: ('42000', "[42000] [Microsoft][ODBC Microsoft Access Driver] 不能读取记录: 在 'MSysObjects' 上没有读取数据权限.") 咱三步走(以Access 2013为例) 1.显示MSysObjects表 文件 -> 选项 -> 当前数

asp获取access数据库中的一条随机记录

针对“用一条SQL得到数据库中的随机记录集”问题在网上已经有很多答案了: SQL Server 2000: SELECT TOP n * FROM tanblename ORDER BY NEWID() Access SELECT TOP n * FROM tanblename ORDER BY rnd([一个自动编号字段]) 好了! 原文地址:https://www.cnblogs.com/l9l99/p/10952982.html

.net(C#)在Access数据库中执行sql脚本

自己写的一个工具类,主要是业务场景的需要. 主要有两个功能: ①执行包含sql语句的字符串 ②执行包含sql语句的文件 调用方式 1 /// <summary> 2 /// 执行sql语句 3 /// </summary> 4 /// <param name="sql">需要执行的sql语句</param> 5 public bool ExecuteSql(string sql, ref string errorMsg) 6 { 7 Se

获取sqlserver数据库中所有库、表、字段名的方法

1.获取所有数据库名: SELECT Name from Master..SysDatabases ORDER BY Name 2.获取所有表名: SELECT Name from DatabaseName..SysObjects Where XType='U' ORDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; 3.获取所有字段名: SELECT Name from SysColumns WHERE id=Object_Id('TableNa

PHP中实现在数据库中的增、删、查、改

其实要想在PHP中访问并获取到数据库中的数据其实并不难,下面我以例子为大家介绍: 首先,打开PHP软件和WampServer服务,确保在WampServer中的phpMyAdmin中有你要使用的数据表, 在PHP中新建一个页面,然后用上回说到的方法连接到数据库, 如果你需要查看你当前的数据表中的数据,那么 执行一下代码: mysql_query("这里是查询数据表的语句"*"号表示查询出所有的信息  后面是你要查询的数据表名) 返回一个资源类型,这里命名为$sql; 由于我们

随机获取oracle数据库中的任意一行数据(rownum)

最近看oracle资料的时候,了解rownum的概念,以前只知道对数据库表进行简单的增删改查: 看到了rownum的概念后,突然想到了好多业务场景应该都可以适用的,比如在进行随机发奖的时候, 我们就可以从先查一下奖品表中可以发的总奖品数,然后通过java的Random类在总奖品数内生成一个随机整数X,然后调用 select * from (select rownum no,id from Table where rownum<=X ) where no >=X 获取出该条奖品,这样获取出来的值

c# 使用GetOleDbSchemaTable获取access数据库结构

c# 使用GetOleDbSchemaTable获取access数据库结构 ado.net可以使用GetOleDbSchemaTable方法来获取access数据库的结构,但得到的datatable的内容的含义不是很明了(如DATA_TYPE字段) 这里详细描述了返回datatable的含义http://msdn.microsoft.com/en-us/library/ms723052(VS.85).aspx,http://msdn.microsoft.com/en-us/library/ms7

C#操作Access数据库中遇到的问题(待续)

(1)在向Access中插入数据时,显示语法错误,后来将生成的sql语句单独拿到Access数据库中运行,能正确插入数据,从网上寻找资料,有人的sql语句正常,但是该语句在Access中运行错误,错误原因为:sql语句中包含了access的保留字,并列举了保留字.通过对比自己写的sql语句,没发现保留字存在,后来实在没别的办法,将所有的字段都用[]包含起来,再次运行,正常插入,问题解决. (2)向access中插入时间,显示操作符丢失.解决办法:将地段前后加上#,即  #字段名# ,问题解决.