问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

取得数据库表自动编号字段名称

发布网友 发布时间:2022-04-12 19:19

我来回答

3个回答

热心网友 时间:2022-04-12 20:49

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

我之前上网查阅了相关的信息,发现这方面的文章不是太多,虽然不长用,但是有时真要用时使人抓...
我说下我的思路
首先我们需要数据库的架构信息,获得表名(其实我个人认为可以获得数据库各表的PrimaryKey已经足够了,因为.Net的Guid.NewGuid()方法做主键实在是太好了),然后根据表名循环查询除系统表之外的所有表来获取相关信息.很遗憾,我原先一直打算只用ADO.NET就完成所有的事情,但是寻找了好久都没有发现相关的方法,当然这和个人的水平有着重要的因素,不罗嗦了下面是代码
public void ACCESS_MSG(string DataPath)
{
try
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
DataOpt.Data opt = new DataOpt.Data();
conn = opt.OLEDBCONN(DataPath);//这里是我自己写的连接类
dt=conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Primary_Keys, null);//这里获取数据的架构信息
Get_TableName(dt,DataPath);
conn.Close();
}
catch (System.Exception ex)
{
Console.Write(ex.Message.ToString());
}
}
protected void Get_TableName(System.Data.DataTable TableMsg, string DataPath)
{
int i = 0;
string TableName = "", ParmetersList="",PrimaryKeys="";
for (i = 0; i < TableMsg.Rows.Count; i++)
{
if (TableMsg.Rows[i]["Table_Name"].ToString().Contains("MSys") != true)
{
TableName = TableMsg.Rows[i]["Table_Name"].ToString().ToUpper();
Console.WriteLine(TableName);
PrimaryKeys = TableMsg.Rows[i]["COLUMN_NAME"].ToString();
ParmetersList = Get_ParmeterList(TableName, DataPath);
DataOpt_Table(TableName, DataPath, ParmetersList, PrimaryKeys);

}
}
}

以上代码已经获取了除系统表外所有用户表的名,下面开始获取自动编号列,我使用了ADO,非ADO.NET...
protected void Get_AutoID(string TableName)
{
ADODB.Recordset rs = new ADODB.Recordset();
string conn = "你的数据库连接";
int i = 0;
rs.Open("select * from " + TableName, conn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1);
for (i = 0; i < rs.Fields.Count; i++)
{
if (rs.Fields[i].Properties[2].Value = true)//这里的特性集合中有5个值,第一个是表名(没记错就是),第二个是字段名,第三个就是是否为自动增长类型了,第四个好象是判断数据库是否区分大小写,第五个一直没搞清楚
{
//这个列是自动编号列
}
}

}

热心网友 时间:2022-04-12 22:07

SQLServer通过查询 syscolumns 系统表,可以找出所需要的类型 int identity(1,1)
Access通过查询 MSysNavPaneObjectIDs 隐藏表的 Type 列追问没用过,请用MSysNavPaneObjectIDs 举例一下好吗?写一下实现代码,谢谢

热心网友 时间:2022-04-12 23:41

应该没有提供这样的函数吧...怎么有这个需求...这似乎很少案例用上..
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 我想免费看看神都猛虎? 芭蕾舞剧有什么特点? 芭蕾舞剧的形式特点 西方宫廷舞蹈芭蕾舞有着怎样的艺术特征? 芭蕾舞的四个基本特点 芭蕾舞有哪些特点 哪种色系的口红是适合所有肤色气质的人群的? 不同的场合,女孩子如何选择自己的口红? 兰蔻口红295,适合什么年龄的女生使用? 正红色的口红,你知道适合哪些人群吗? EDIUS停止工作怎么解决? Edius,AE,会声会影。都是什么软件。各各优缺点。 edius6.02软件怎么安装 edius这款软件的特点,自以及使用心得 有谁能介绍一款好用的edius软件吖? 在哪里能买到EDIUS软件 运行edius软件电脑需要什么配置 中考政治历史有什么技巧??? YY语音的混响声卡什么样的最好 yy混响和声卡用什么好?跪求、 怎样喷神都猛虎? 在银行无息贷款带出来后,存到银行里面,银行喊还款怎么办? 贷了无息款后,可以在银行存定期吗 银行定期存款办无息贷款有影响吗? 银行违规无息贷款给亲属存入银行挣利息到什么部门投诉? 可以在银行办理无息贷款吗 把无息贷款存很行吃利息算犯法吗? 在银行办理的两年无息贷款,还款时还打了些利息进去,存进去的利息最后会返还吗? 贷银行无息款用于放贷违法吗 过期咖啡能喝吗,没开封速溶咖啡 银行免息贷款银行怎么赚钱? 我为什么35岁就有白头发 广州比较好的高中对教师有什么学历要求吗 我原来用微信注册的手机号码注销了,我知道,密码忘记了怎么办? 微信现在只记得,密码忘了,手机号注销了,该怎么办? 如何知道注册时间 我的微信忘记密码了,是以前的手机号,现在停用了,我该怎么找回密码啊! - 信息提示 我原来用微信注册的手机号码注销了,我知道,密码忘记了怎么办? 怎么看自己的是什么时间注册的