gpt4 book ai didi

c# - 插入 SQL Server CE 数据库文件并返回插入的 id

转载 作者:太空狗 更新时间:2023-10-30 00:51:38 26 4
gpt4 key购买 nike

问题是:

我的查询

INSERT INTO TableName(val1,val2)values(1,2);
SELECT @@IDENTITY;

当我在服务器资源管理器的运行查询中运行它时,我得到了正确的结果。

但是当我使用 ExecuteScalarExecuteDataTable 我得到一个错误,...查询返回 null

public object ExecuteScalre(string Query, CommandType type) 
{
OpenConnection();
cmd.CommandText = Query;
cmd.CommandType = type;

object obj = null;

try
{
obj = cmd.ExecuteScalar();
}
catch
{
}
finally
{
ReleaseResource();
}

return obj;
}

public DataTable ExecuteDataTable(string Query, CommandType type)
{
OpenConnection();
cmd.CommandText = Query;
cmd.CommandType = type;
DataTable dt = new DataTable();
dataAdaptor = new SqlCeDataAdapter(cmd);

try
{
dataAdaptor.Fill(dt);
}
catch
{
}
finally
{
ReleaseResource();
}
return dt;
}

注意:它是一个.sdf文件(SQL Server CE),不是 .mdf,所以我们不能使用存储过程

最佳答案

Sql Server Compact Edition 不支持在一个查询中包含多个语句。
该数据库(通常)在单个用户场景中使用,因此您可以拆分命令并向数据库发送两个查询,第一个插入记录,第二个返回 @@IDENTITY 值。

    cmd = new SqlCeCommand("INSERT INTO TableName(val1,val2)values(1,2)", cn);
cmd.ExecuteNonQuery();
cmd.CommandText = "SELECT @@IDENTITY";
int result = Convert.ToInt32(cmd.ExecuteScalar());

关于c# - 插入 SQL Server CE 数据库文件并返回插入的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25963314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com