当前位置: 首页 > 编程语言 > C#

如何将一个存储过程的多个结果存储到一个数据集中?分享

时间:2023-04-11 01:20:50 C#

如何将存储过程的多个结果存储到数据集中?如何将StoredProcedure的结果集合并到ASP.NET中的一个数据集中?下面是我在asp.netSqlDataAdapteradap=newSystem.Data.SqlClient.SqlDataAdapter("sp_Home_MainBanner_TopStory",con)中的代码;adap.SelectCommand.CommandType=CommandType.StoredProcedure;adap.SelectCommand.Parameters.AddWithValue("@rows",9);数据集DS=新数据集();adap.Fill(DS,"Table1");adap.Fill(DS,"Table2");GridView1.DataSource=DS.Tables["Table2"];网格视图1。数据绑定();即使有两个适配器,我如何将结果合并到一个数据集中?DataSet包含表。对于上面的示例,如果您有两个SqlDataAdapter,每个调用一个存储过程并像上面那样存储它们。adapter1.Fill(DS,"Table1");adapter2.Fill(DS,"Table2");这将获取第一个查询的表结果并将其作为Table1存储在DataSetDS中。然后它将在同一个数据集中存储另一个表(Table2)。要访问这些表,请使用以下代码:DS.Tables["Table1"]//或Table2,或您在填充期间为其命名的任何名称。您已经有了正确的流程,您只需要查看数据集的工作方式并决定如何访问您的信息。如果要将结果合并到一个DataTable中,则需要遍历表并合并信息。例如:DataTablecombinedTable=newDataTable();//创建列foreach(DataRowrowinDS.Tables["Table1"].Rows){//创建行?复制资料过来?无论你想做什么。在MSSQL中我们创建了一个过程,如:[createprocprocedureNameasbeginselect*fromstudentselect*fromtestselect*fromadminselect*fromresultend]在C#中,我们编写以下代码以在DataSet中检查这些值{SqlConnectionsqlConn=newSqlConnection("数据源=(本地);初始目录=bj001;用户id=SA;密码=bj");SqlCommandsqlCmd=newSqlCommand("过程名",sqlConn);sqlCmd.CommandType=CommandType.StoredProcedure;sqlConn.Open();SqlDataAdaptersda=newSqlDataAdapter(sqlCmd);数据集ds=new数据集();sda.填充(ds);sqlconn.Close();//从公共数据集中检索所有存储的表。DataTabledt1=ds.Tables[0];DataTabledt2=ds.Tables[1];DataTabledt3=ds.Tables[2];DataTabledt4=ds.Tables[3];//要显示表的所有行,我们对每个DataTable使用foreach循环。foreach(DataRowdrindt1.Rows){Console.WriteLine("学生姓名:"+dr[sName]);}}试试这个:adapter1.Fill(DS,"Table1,Table2");这在这里行得通…………以上是C#学习教程:如何将一个存储过程的多个结果存储到一个数据集中?分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: