Visual Studio 2017社区版使用以下代码覆盖ExecuteScalar
或ExecuteNonQuery
:
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DataContext"].ConnectionString))
{
con.Open();
var sc = new SqlCommand("InsertOrUpdate", con);
sc.CommandType = System.Data.CommandType.StoredProcedure;
sc.Parameters.AddWithValue("code", "some string code");
var o = sc.ExecuteScalar(); // is null. cannot step into
int newPrimaryKey = Convert.ToInt32(o); // stays zero
}
我的app.config datacontext中有一个azure sql server,还有一个localdb Server=(localdb)\MSSQLLocalDB;Integrated Security=true
两者都没有进入(相同的)存储过程。
我的Visual Studio Server Explorer和Visual Studio SQL Server对象资源管理器中都有相同的连接字符串。
当我通过服务器资源管理器或sql server对象资源管理器打开文件并设置断点并开始调试时,它总是说断点不会被击中。
我还将数据库作为项目添加到我的解决方案资源管理器中,并检查了项目属性中的启用sql调试。
我已阅读此How can I step into a SQL Server stored proc from my C# code?类似问题。
如果你愿意,我可以发布存储的proc代码,但它不是那么相关,因为我无法进入调试它。
这是我的天蓝色数据库版本
Microsoft SQL Azure(RTM) - 12.0.2000.8 2017年6月7日01:09:35版权所有(C)2017 Microsoft Corporation。版权所有。
这是我的localdb
Microsoft SQL Server 2016(SP1)(KB3182545) - 13.0.4001.0(X64)2016年10月28日18:17:30版权所有(c)Windows 10 Pro 6.3上的Microsoft Corporation Express Edition(64位)(Build 15063: )(管理程序)
运行Visual Studio 2017社区15.2(最新稳定版) 和云资源管理器1.1.1704.221 和ssms 17.1(14.0.17119.0)
我还以管理员身份启动了vs。也没有帮助。
我的机器上没有显示app调试的第4步。不在服务器资源管理器或SQL Server对象资源管理器中。 https://www.codeproject.com/Articles/1079275/Debug-Stored-Procedures-in-Visual-Studio-and-SSMS
似乎在localdb上检查过。不适用于azure sql。
当我手动想要从ssms运行存储过程时,azure db没有调试选项。