如何使用MS Access数据库在C#中自动生成字母数字ID?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用MS Access数据库在C#中自动生成字母数字ID?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2345字,纯文字阅读大概需要4分钟。
内容图文
![如何使用MS Access数据库在C#中自动生成字母数字ID?](/upload/InfoBanner/zyjiaocheng/883/d3e13d848eeb4d35b0a051f8e20e5237.jpg)
我有一个叫emp的表.该表包含三列empid,ename和薪金.我必须将Empid存储为自动生成的ID,例如:E001,E002,E003.如何使用C#做到这一点?
解决方法:
如果这不是家庭作业:
>考虑此ID命名方案对您的数据的限制.
>如果这些限制是不可接受的,请寻找一种更好的机制来生成唯一ID.一方面,是否真的需要将字母E与数字一起存储,还是可以将Empid设置为INT类型的列并以编程方式添加E?如果您从未在任何地方实际显示ID,请考虑使用例如GUID(请参阅.NET类型System.Guid的文档),因为它们被保证是唯一的(出于大多数实际目的).或者只是在empid列上使用数据库的自动增量功能.
如果这是家庭作业:
>删除的记录的ID是否可以回收(重用)以后再添加记录?
>尝试在.NET框架中找到一种方法,该方法可格式化带有任意数量的前导零的整数.例如1→“ 001”.
还尝试在.NET框架中找到相反的方法,例如“ 001”→1.
使用这两个函数可以在您的Ennn ID及其数字部分之间进行转换.
>从数据库表中检索所有现有的ID:
如果无法回收ID,请按降序顺序获取它们,告诉DB仅从排序后的结果集中返回第一个条目,然后从返回的ID值中确定下一个较大的ID.
如果您可以回收ID,请使其升序排列,并找到第一个间隙(即,当两个相邻ID的数字部分之间的差大于1时).建立一个新的ID,以使其落入这个空白.
一些示例代码片段:
将整数格式为E …字符串:
int numericPart = 123; // <-- example input
string empid = numericPart.ToString("'E'000");
从E …字符串中提取数字部分
(使用正则表达式,在您的情况下这实际上是过大的):
using System.Text.RegularExpressions;
...
string empid = "E123"; // <-- example input
var empidPattern = new Regex(@"^E(?<NumericPart>\d{3})$");
if (empidPattern.IsMatch(empid))
{
// extract numeric part from key and convert it to int:
int numericPart = Int32.Parse(
empidPattern.Match(empid).Groups["NumericPart"].Value);
}
else
{
// 'empid' does not represent a valid key (wrong format)
}
将数据库表中的现有键加载到集合中:
using System.Data;
// create a new collection that will hold all empid keys in emp
var empidList = new List<string>();
// open a database connection -- you need to add appropriate code here:
using (IDbConnection db = ...)
{
// define the query for retrieving all empid keys:
IDbCommand getEmpidList = db.CreateCommand();
getEmpidList.CommandType = CommandType.Text;
getEmpidList.CommandText = "SELECT empid FROM emp ORDER BY empid ASC";
// execute the query and transfer its result set to the collection:
using (IDataReader reader = getEmpidList.ExecuteReader())
{
while (reader.Read())
{
empidList.Add(reader.GetString(0));
}
}
}
我将把这些部分放在一起,添加上面描述的实际逻辑,并进一步改进代码.
内容总结
以上是互联网集市为您收集整理的如何使用MS Access数据库在C#中自动生成字母数字ID?全部内容,希望文章能够帮你解决如何使用MS Access数据库在C#中自动生成字母数字ID?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。