在C#中怎么获取数据库的自动编号字段

在C#中怎么获取数据库的自动编号字段,第1张

NET获取ACCESS自动编号列的一种方法(转)

我之前上网查阅了相关的信息,发现这方面的文章不是太多,虽然不长用,但是有时真要用时使人抓

我说下我的思路

首先我们需要数据库的架构信息,获得表名(其实我个人认为可以获得数据库各表的PrimaryKey已经足够了,因为Net的GuidNewGuid()方法做主键实在是太好了),然后根据表名循环查询除系统表之外的所有表来获取相关信息很遗憾,我原先一直打算只用ADONET就完成所有的事情,但是寻找了好久都没有发现相关的方法,当然这和个人的水平有着重要的因素,不罗嗦了下面是代码

public void ACCESS_MSG(string DataPath)

{

try

{

SystemDataDataTable dt = new SystemDataDataTable();

SystemDataOleDbOleDbConnection conn = new SystemDataOleDbOleDbConnection();

DataOptData opt = new DataOptData();

conn = optOLEDBCONN(DataPath);//这里是我自己写的连接类

dt=connGetOleDbSchemaTable(SystemDataOleDbOleDbSchemaGuidPrimary_Keys, null);//这里获取数据的架构信息

Get_TableName(dt,DataPath);

connClose();

}

catch (SystemException ex)

{

ConsoleWrite(exMessageToString());

}

}

protected void Get_TableName(SystemDataDataTable TableMsg, string DataPath)

{

int i = 0;

string TableName = "", ParmetersList="",PrimaryKeys="";

for (i = 0; i < TableMsgRowsCount; i++)

{

if (TableMsgRows[i]["Table_Name"]ToString()Contains("MSys") != true)

{

TableName = TableMsgRows[i]["Table_Name"]ToString()ToUpper();

ConsoleWriteLine(TableName);

PrimaryKeys = TableMsgRows[i]["COLUMN_NAME"]ToString();

ParmetersList = Get_ParmeterList(TableName, DataPath);

DataOpt_Table(TableName, DataPath, ParmetersList, PrimaryKeys);

}

}

}

以上代码已经获取了除系统表外所有用户表的名,下面开始获取自动编号列,我使用了ADO,非ADONET

protected void Get_AutoID(string TableName)

{

ADODBRecordset rs = new ADODBRecordset();

string conn = "你的数据库连接";

int i = 0;

rsOpen("select from " + TableName, conn, ADODBCursorTypeEnumadOpenDynamic, ADODBLockTypeEnumadLockOptimistic, -1);

for (i = 0; i < rsFieldsCount; i++)

{

if (rsFields[i]Properties[2]Value = true)//这里的特性集合中有5个值,第一个是表名(没记错就是),第二个是字段名,第三个就是是否为自动增长类型了,第四个好象是判断数据库是否区分大小写,第五个一直没搞清楚

{

//这个列是自动编号列

}

}

}

这是在ms sqlserver中是这么创建的

create table tablename(

ID int identity(1,1) NOT NULL -- identity(1,1) 就表示的是自增

)

工具原料:

access2010

 

 

 

 access数据库的自动编号字段的值不能修改,需要重新设置只能删除该字段后重新建立。

具体步骤如下:

1、打开数据库,左侧导航栏点击要修改的数据表;

2、右击该数据表,点击设计视图;

3、点击自动编号字段,点击删除行,如下图;

4、点击是,确认删除;

5、字段列表输入新字段名称,选择自动编号数据类型,点击保存即可。

可以,你既然用PHP+mysql 应该有 phpadmin 和mysql admin吧。

在mysql admin里面建表的时候把字段设 为自动增长就可以了,自动增长的字段在插入的时候不需要编号,会自动往下排。

用了自动增长,插入的时候就不要加UID了,跟SQL 里面的是否标识的自动增长一样

建立一个更新查询,假设分类表删掉的记录ID是从5~50,而目前这个表ID字段的最大值是500了,接下来,新添加的记录ID应该是501~546,那么在关联表里,更新字段为〔关联ID]=〔关联ID〕+496,更新查询代码如下:

UPDATE

关联表

SET

关联表关联ID

=

[关联ID]+496

WHERE

(([关联ID]>4

And

[关联ID]<50));

试一试。

你在这个库里新建一个查询,在SQL视图里,把我上面的代码复制进去,再改成自己的表名和字段名。

这个比较简单

以下在Microsoft Access 下实现

打开表的设计视图,将你要自动编号的字段的格式设为0000#,他会自动变成:0000o,不要管他,这样第一个记录就会变成00001,依次类推,前面的0表示0的个数,这些是参照Excel的

创建表的时候,把这一列设为int型,然后把标识这一个选成是,就可以自动编号了。

如果使用语法创建

CREATE TABLE [表名字] (

[自增列名字] [int] IDENTITY (1, 1) NOT NULL ,

。。。其他列

)

以上就是关于在C#中怎么获取数据库的自动编号字段全部的内容,包括:在C#中怎么获取数据库的自动编号字段、创建MDB数据库时,怎么为字段ID设置为自动编号、怎么重新设置access数据库的自动编号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10195336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存