Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取用于更新数据集的t-sql语句_C#_Sql_Dataset - Fatal编程技术网

C# 如何获取用于更新数据集的t-sql语句

C# 如何获取用于更新数据集的t-sql语句,c#,sql,dataset,C#,Sql,Dataset,我有一个c#DataSet对象,其中有一个表,在其中放入了一些数据,并对该数据集进行了一些更改(通过代码) 当我使用如下代码将数据集更新到数据库时,是否有方法获取此数据集将在sql server上执行的实际t-sql查询: var dataAdapter = new SqlDataAdapter(cmdText, connection); var affected = dataAdapter.Update(updatedDataSet); 我想知道此数据集将向数据库发出什么查询,以便我可以将这

我有一个c#DataSet对象,其中有一个表,在其中放入了一些数据,并对该数据集进行了一些更改(通过代码)

当我使用如下代码将数据集更新到数据库时,是否有方法获取此数据集将在sql server上执行的实际t-sql查询:

var dataAdapter = new SqlDataAdapter(cmdText, connection);
var affected = dataAdapter.Update(updatedDataSet);

我想知道此数据集将向数据库发出什么查询,以便我可以将这些更改记录到我的c程序中的日志文件中。

询问SqlDataAdapter的SqlCommand对象

您可以订阅
SqlDataAdapter
的和事件。它们将告诉您即将执行或刚刚执行的
SqlCommand


通过设置随事件一起提供的属性,可以影响当前和将来的更新行。它是类型,因此您可以告诉它跳过当前行或所有未来行。

您可以围绕
System.Data.SqlClient
提供程序构建包装(例如,提供程序在配置文件中注册为…
providerName=“System.Data.SqlClient
”)。本质上是一个拦截代理,您可以访问通过提供者传递的所有信息,并可以提取您需要的信息,拦截、修改、聚合和/或丰富它。这是一个更高级的方法,但它打开了捕获整个范围信息的大门,并且可以作为单独的关注层插入/替换/删除。

好的,下一个问题,但是当我在dataadapter上执行.update时,如何防止查询实际在数据库上执行?抱歉,但是我在哪里可以找到(哪个属性)这些是SqlCommand对象吗?