主页 > 知识库 > .NET中获取Access新增记录Id怪现象解决方法

.NET中获取Access新增记录Id怪现象解决方法

热门标签:地图标注多个行程 云南外呼电销机器人系统 上海杨浦怎么申请申请400电话 厦门商铺地图标注 山西防封卡电销卡套餐 铜川小型外呼系统运营商 陕西人工外呼系统哪家好 浙江外呼系统怎么安装 海外地图标注门市标
复制代码 代码如下:

using System;
using System.Data.OleDb;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetUserId("dnawo"));
Console.ReadKey();
}
/// summary>
/// 获取用户Id
/// /summary>
/// param name="name">/param>
/// returns>/returns>
static int GetUserId(string name)
{
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\db1.mdb"))
{
conn.Open();
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = "select Id from UserTB where UserName='" + name + "'";
object val = cmd.ExecuteScalar();
if (val != null)
return int.Parse(val.ToString());
else
{
cmd.CommandText = string.Format("insert into UserTB(UserName) values('{0}')", name);
cmd.ExecuteNonQuery();
return GetUserId(name);
}
}
conn.Close();
}
}
}
}

经测试,当用户不存在时,执行上边代码后Access表中总会新增两条一样的记录:



改用SQL Server数据库不会有上述问题,经多次测试又发现,若在"return GetUserId(name);"处设置断点,稍停一会也不会出现上述问题。最终代码修改如下运行正常:
复制代码 代码如下:

using System;
using System.Data.OleDb;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetUserId("dnawo"));
Console.ReadKey();
}
/// summary>
/// 获取用户Id
/// /summary>
/// param name="name">/param>
/// returns>/returns>
static int GetUserId(string name)
{
int id = 0;
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\db1.mdb"))
{
conn.Open();
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = "select Id from UserTB where UserName='" + name + "'";
object val = cmd.ExecuteScalar();
if (val != null)
id = int.Parse(val.ToString());
else
{
cmd.CommandText = string.Format("insert into UserTB(UserName) values('{0}')", name);
cmd.ExecuteNonQuery();
}
}
conn.Close();
}
return id == 0 ? GetUserId(name) : id;
}
}
}
您可能感兴趣的文章:
  • asp.net中获取新增加记录的ID Access版

标签:孝感 自贡 莱芜 朔州 西双版纳 常州 信阳 许昌

巨人网络通讯声明:本文标题《.NET中获取Access新增记录Id怪现象解决方法》,本文关键词  .NET,中,获取,Access,新增,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《.NET中获取Access新增记录Id怪现象解决方法》相关的同类信息!
  • 本页收集关于.NET中获取Access新增记录Id怪现象解决方法的相关信息资讯供网民参考!
  • 推荐文章