gpt4 book ai didi

asp.net - 使用 SqlClient 命名空间类时,Glimpse 可以提供诊断吗

转载 作者:行者123 更新时间:2023-12-04 11:54:21 25 4
gpt4 key购买 nike

我已经下载了 Glimpse 和 Glimpse.ADO 扩展并将其安装在我的测试实例上。

我以为我会捕获执行的任何 sql,但它似乎并没有按照我们的代码编写方式捕获命令。

        using (var conn = new SqlConnection(cString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "Select count(*) from table";
cmd.CommandType = CommandType.Text;

txtResult2.Text = cmd.ExecuteScalar().ToString();
conn.Close();
}

我可以让它从测试页面提供信息,sql代码如下所示:
        var factory =DbProviderFactories.GetFactory(cString.ProviderName);
using (var connection = factory.CreateConnection())
{
connection.ConnectionString = connectionString.ConnectionString;
connection.Open();

using (var command = connection.CreateCommand())
{
command.CommandText = "SELECT COUNT(*) FROM table";
command.CommandType = CommandType.Text;
txtResult1.Text = command.ExecuteScalar().ToString();
}
}

但是,如果我只能使用此 dbProviderFactories 方法捕获数据,我的代码中有太多地方需要更改。

有没有办法让 Glimpse.ADO 与 System.Data.SqlClient.SqlConnection 类一起工作?是否有另一个适用于此命名空间的 Glimpse 扩展?

有没有其他方法可以解决这个问题?

最佳答案

我同意@StriplingWarrior,利用提供者工厂将使您的代码更加干燥并遵循最佳实践。 DbProviderFactories确实是做到这一点的最佳方式,您的代码不会明确依赖 Glimpse。

但是,如果您真的只想继续使用现有的应用程序代码,Glimpse 将通过以下更改为您提供支持:

using (var conn = new GlimpseDbConnection(new SqlConnection(cString))
{
conn.Open();
DbCommand cmd = conn.CreateCommand();
cmd.CommandText = "Select count(*) from table";
cmd.CommandType = CommandType.Text;

txtResult2.Text = cmd.ExecuteScalar().ToString();
conn.Close();
}

在上面的例子中,命令是用 CreateCommand() 创建的。方法,无需关联命令和连接。

或者,您仍然可以像这样显式地创建命令:
conn.Open();
DbCommand cmd = new GlimpseDbCommand(new SqlCommand());
cmd.Connection = conn;
cmd.CommandText = "Select count(*) from table";
cmd.CommandType = CommandType.Text;

最后,单击 ? 可以获得有关 SQL 选项卡的更多文档。选择选项卡后,Glimpse UI 中的图标,或访问我们的 SQL documentationgetGlimpse.com . ( 我会将此信息添加到该页面以供将来引用。 )

关于asp.net - 使用 SqlClient 命名空间类时,Glimpse 可以提供诊断吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16285844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com