c# – 如何合并/组合两个SqlDataReader对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何合并/组合两个SqlDataReader对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1545字,纯文字阅读大概需要3分钟。
内容图文
![c# – 如何合并/组合两个SqlDataReader对象](/upload/InfoBanner/zyjiaocheng/910/7f81494ad42d4c48ade11c7964c59abc.jpg)
我正在研究SQL服务器监控项目.在这里我想从机器上安装的所有SQL Server实例中获取数据.为此,我编写了一个CLR存储过程,其中数据来自两个不同的SqlDataReader对象,我想合并这两个datareder对象.
是否可以合并两个SQLdatareader对象?
以下是我遇到这个问题的情况:
SqlConnection conn = new SqlConnection("ConnectionSting of 1st SQLServerInstance")
string query = "select dbid,uid,cpu from [master].[sys].sysprocesses";
SqlCommand SelectCmmand = new SqlCommand(query, conn);
SqlDataReader rd1;
conn.Open();
rd1 = SelectCmmand.ExecuteReader();
conn.Close();
conn = new SqlConnection("ConnectionSting of 2nd SQLServerInstance")
SqlCommand SelectCmmand = new SqlCommand(query, conn);
SqlDataReader rd2;
conn.Open();
rd2 = SelectCmmand.ExecuteReader();
conn.Close();
SqlPipe sp;
sp = SqlContext.Pipe;
sp.Send(?????);
现在,sp.Send(??)方法希望SQLDataReader对象作为参数,我想从两个不同的连接字符串中发送上述数据.
那么,我应该如何合并/组合rd1和rd2?
解决方法:
您可以使用读取器加载两个DataTable,合并它们并调用DataTable.CreateDataReader().
例如(未测试):
DataTable dt1 = New DataTable();
dt1.Load(rd1);
DataTable dt2 = New DataTable();
dt2.Load(rd2);
dt1.Merge(dt2);
DataTableReader mainReader = dt1.CreateDataReader();
Common.DbDataReader reader = (Common.DbDataReader)mainReader;
sp.Send((SqlClient.SqlDataReader)reader);
> DataTable.Load(iDataReader)
> DataTable.Merge
> DataTable.CreateDataReader
编辑:我担心我的代码无效,因为你无法将DbDataReader强制转换为SqlDataReader.
一种方法是(再次,未经测试)使用SqlPipe.SendResultsRow逐行发送所有记录.
内容总结
以上是互联网集市为您收集整理的c# – 如何合并/组合两个SqlDataReader对象全部内容,希望文章能够帮你解决c# – 如何合并/组合两个SqlDataReader对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。