问题是:
我的查询
INSERT INTO TableName(val1,val2)values(1,2);
SELECT @@IDENTITY;
Run Code Online (Sandbox Code Playgroud)
当我在服务器资源管理器的运行查询中运行它时,我得到了正确的结果.
但是当我使用ExecuteScalar或者ExecuteDataTable我得到一个错误时,...查询返回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;
}
Run Code Online (Sandbox Code Playgroud)
注意:它是一个.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());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2028 次 |
| 最近记录: |