ACCESS 怎样获得刚插入数据的ID

loves0215cc 2012-07-28 02:55:53
           
sql = string.Format(" insert into neirong(lindex,title,contents,creattime,readcount,Tag)values('{0}','{1}','{2}','{3}',{4},'{5}') ", lindex, title, contents, DateTime.Now.ToString("yyyy-MM-dd"), 0, tag);
ret = ExcuteSQL(sql);
return ret;[code=C#]
[/code]


怎样获刚插入数据的ID
...全文
577 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-07-29
  • 打赏
  • 举报
回复
select max(id),,多人操作就错误了
jiongxiaotao 2012-07-28
  • 打赏
  • 举报
回复
如果ID自增的话,肯定刚插入的那条的ID是最大的。用select max(id)from。。。。
代码如下

public CheckRecentId(string sql_Table){
try
{
SqlCommand cmd = new SqlCommand("select Max(id)from "+sql_Table, cn);
cn.Open();
int id = -1;
//返回查询结果中的第一行第一列,是个object对象
id = Convert.ToInt32(cmd.ExecuteScalar());

if (count < 1)
return false;
return true;
}
catch (Exception ex)
{
return false;
}
孟子E章 2012-07-28
  • 打赏
  • 举报
回复
你可以这样
/C#

string query = "Insert Into neirong(xx,xx) Values (?,?)";

string query2 = "Select @@Identity";

int ID;

string connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Northwind.mdb";

using (OleDbConnection conn = new OleDbConnection(connect))

{

using (OleDbCommand cmd = new OleDbCommand(query, conn))

{

cmd.Parameters.AddWithValue("", xxx.Text);
cmd.Parameters.AddWithValue("", xxx.Text);
conn.Open();

cmd.ExecuteNonQuery();

cmd.CommandText = query2;

ID = (int)cmd.ExecuteScalar();

}

}


注意这里的conn 不能关闭
loves0215cc 2012-07-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

SQL code

select @@identity
[/Quote]

access 不能用@@identity
loves0215cc 2012-07-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

C# code

public int add()
{
sql = string.Format(" insert into neirong(lindex,title,contents,creattime,readcount,Tag)values('{0}','{1}','{2}','{3}',{4},'{5}');select @@IDENTITY", lindex, title, conte……
[/Quote]

你的意思是Return刚插入的ID吗
人生无悔 2012-07-28
  • 打赏
  • 举报
回复

select @@identity
若-相惜 2012-07-28
  • 打赏
  • 举报
回复

public int add()
{
sql = string.Format(" insert into neirong(lindex,title,contents,creattime,readcount,Tag)values('{0}','{1}','{2}','{3}',{4},'{5}');select @@IDENTITY", lindex, title, contents, DateTime.Now.ToString("yyyy-MM-dd"), 0, tag);
object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
if (obj == null)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}

}

/// <summary>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="SQLString">计算查询结果语句</param>
/// <returns>查询结果(object)</returns>
public static object GetSingle(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
object obj = cmd.ExecuteScalar();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧