【发布时间】:2014-09-22 12:37:18
【问题描述】:
问题是:
我的查询
INSERT INTO TableName(val1,val2)values(1,2);
SELECT @@IDENTITY;
当我在服务器资源管理器的运行查询中运行它时,我得到了正确的结果。
但是当我使用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;
}
注意:它是一个.sdf 文件(SQL Server CE),不是 .mdf,所以我们不能使用存储过程
【问题讨论】:
-
能否展示执行查询的代码?
-
public object ExecuteScalre(string Query, CommandType type) { OpenConnection(); cmd.CommandText = 查询; cmd.CommandType = 类型;对象 obj = null;尝试 { obj = cmd.ExecuteScalar(); } 赶上 { } 最后 { ReleaseResource(); } 返回对象; } 或
-
@OsamaElfar 请注意,您可以编辑您的问题。上面的代码应该通过编辑包含在问题中。
-
删除try/catch。并检查异常。创建空的 try/catch 是隐藏代码中错误的有效方法。
-
这是来自跟踪的错误:解析查询时出错。 [令牌行号=1,令牌行偏移量=103,错误令牌=SELECT]
标签: c# sql-server-ce