我有一个奇怪的问题。我正在使用Firebird for .Net并使用Interbase数据库。当我尝试使用SQL查询填充数据集时,它工作正常,但是当我尝试执行storedProc时,它会挂起fill方法。
以下是我的代码片段:
DataTable dt = new DataTable();
FbDataAdapter ada = new FbDataAdapter("spsGetLastOpened", System.Configuration.ConfigurationManager.ConnectionStrings["mydb"].ConnectionString);
ada.SelectCommand.CommandType = CommandType.StoredProcedure;
ada.SelectCommand.Parameters.Add("@USER_KEY",2);
ada.Fill(dt);
我搜索了一个问题,人们建议如果已经与数据库建立了开放连接,那么我就创建了一个独立的实用程序,它不会打开连接(Dataadapter自己管理连接)。
请告知我在这里做错了什么。
亲切的问候, 阿里
答案 0 :(得分:0)
我没有使用firebird作为.Net,但我想记住一件事。您可以将常规sql语句执行存储过程
-execute procedure SomeProc(?,...)
或可选择的过程
-Select * from SomeProc(?,....)
答案 1 :(得分:0)
对于任何从谷歌到这里的人来说.. 我不知道原因是什么,但当我作为交易执行时它起作用了。我只运行了选择查询,我无法理解为什么它有效?