如何在sqldatareader中获取当前记录的序列号



请注意,问题涉及调试

我有一个类似于以下的代码

 using (SqlConnection cn = new SqlConnection("Connection string")) {
                cn.Open();
                using (SqlCommand cmd = cn.CreateCommand()) {
                    cmd.CommandText = "select aField from ATABLE";
                    using (SqlDataReader rd = cmd.ExecuteReader()) {
                        while (rd.Read()) {
                            Debug.Print(rd[0].ToString());
                            // other record processing code
 }}}}

当我在while周期中间打破代码执行时,我可以获取已经处理的记录数吗?我不介意挖掘SqlDataReader胆量的任何深处,因为我是调试。在编写生产代码时,我会添加一些计数器。

想象一下我刚刚按下全部的情况( ctrl - alt - - break (,我现在想去我在哪里。我知道断点可以计数命中率,但这不是答案。我也知道受记录受属性的属性,但是"直到读取所有行并关闭SqlDataReader"

才能设置它。

问题是SqlDataReader是否计数已处理的记录。

no。在SqlDataReader内部,关于处理的行的数量没有任何状态。这是一个前向流,因此它也不容纳已经处理过的行。

我建议在您自己的代码中创建一个计数器整数,或在数据读取器周围编写包装器。

相关内容

  • 没有找到相关文章

最新更新