佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > .NET中獲取Access新增記錄Id怪現(xiàn)象解決方法

.NET中獲取Access新增記錄Id怪現(xiàn)象解決方法

熱門標(biāo)簽:團(tuán)購網(wǎng)站 阿里云 Linux服務(wù)器 服務(wù)器配置 科大訊飛語音識別系統(tǒng) 電子圍欄 銀行業(yè)務(wù) Mysql連接數(shù)設(shè)置
復(fù)制代碼 代碼如下:

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();
}
}
}
}

經(jīng)測試,當(dāng)用戶不存在時,執(zhí)行上邊代碼后Access表中總會新增兩條一樣的記錄:



改用SQL Server數(shù)據(jù)庫不會有上述問題,經(jīng)多次測試又發(fā)現(xiàn),若在"return GetUserId(name);"處設(shè)置斷點(diǎn),稍停一會也不會出現(xiàn)上述問題。最終代碼修改如下運(yùn)行正常:
復(fù)制代碼 代碼如下:

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版

標(biāo)簽:萍鄉(xiāng) 廣元 衢州 江蘇 棗莊 衡水 大理 蚌埠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《.NET中獲取Access新增記錄Id怪現(xiàn)象解決方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    武夷山市| 五原县| 壤塘县| 南华县| 民乐县| 栖霞市| 河北省| 苏州市| 土默特右旗| 江永县| 开远市| 宁武县| 鲜城| 高雄市| 那坡县| 东阿县| 四子王旗| 永和县| 米泉市| 恭城| 绍兴县| 肇源县| 平山县| 科技| 泰宁县| 隆德县| 浏阳市| 安仁县| 庄河市| 疏附县| 循化| 札达县| 云龙县| 康保县| 三明市| 汝南县| 象州县| 航空| 紫云| 陇南市| 丰镇市|