我一直在开发一个使用强类型数据集和存储过程的应用程序。我刚毕业,这是卖给我们的方法。我开始有严重的怀疑。
我的客户告诉我他可能会从 SQL Server 更改为 MySQL。从我读过的内容来看,最好不要使用存储过程,因为迁移可能会变得更加困难。所以无论如何,我刚刚使用向导实现了一个新的表适配器查询,并选择了Use SQL Statements而不是Create new stored procedure。
我对查询的调用
Intranet.administratorsDataTable dt = taAdministrators.GetAdministrators();
现在生成此错误:
executereader 需要一个开放且可用的连接。连接的当前状态已关闭
我不知道为什么这个自动生成的代码没有连接,而且我很宿醉,无法处理这个问题。我决定暂时回到 SP,这样我就可以完成一些工作。仍在抛出此错误(相同的表适配器,相同的方法名称,但重新配置为使用 SP)。我所有的其他数据库调用都可以正常工作。
我假设生成的 SQL 代码仍然在某个地方浮动,即使我将适配器更改为使用 SP。有人可以告诉我它在哪里,以便我可以删除它吗?
另一方面,我真的开始认为手动使用 SqlConnection 和 SqlCommand 是一个更好的选择,因为在修改数据库表等灵活性方面,使用这些查询“工具”会带来很多麻烦。您更有经验的人告诉我这是否正确,或者您是否提倡使用表格适配器?
*编辑 它也会抛出这些:
无效操作。连接已关闭。
和
已经有一个与此命令关联的打开的 DataReader,必须先关闭它。