Asp.net(C#) 获取 执行sql server 语句/存储过程后的 多个返回值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asp.net(C#) 获取 执行sql server 语句/存储过程后的 多个返回值?相关的知识,希望对你有一定的参考价值。

如果返回
标量
值的话,例如文章的个数,可以使用储存过程的输出(OUTPUT)参数。在定义存储过过程时为参数指定OUTPUT关键字。C#调用
存储过程
时指定参数
SqlParameter
对象的
Direction
属性为Output。
如果是返回多个
结果集
的话,可以直接在存储过程中使用多个select查询就行。在C#代码中使用SqlDataReader对象的NextResult方法提取下一个结果集。
参考技术A 存储过程返回两个Select表
然后使用SqlDataAdapter
Fill到一个DataSet中(必须是DataSet)
这样就可以得到两个DataTable,第一个Table就是所有行的值,第二个值就是文章的个数
你这是想进行分页吧,其实还有一种方案就是存储过程返回out参数值,同时返回Select语句
参考技术B sqlconnection
conn
=
new
sqlconnection("data
source=ykz-20091106vln;initial
catalog=admin;user
id=sa;password=wandande");//创建数据库连接对象、数据库连接字符串
//
数据库连接字符串
conn.open();//打开数据库连接
string
sql
=
"insert
into
[admin]
([zhanghao]
,[mima])
values('"+textbox1.text+"','"+textbox2.text+"')";//获取用户输入的内容评传sql语句
//
把接收到的
textbox1.text
textbox2.text
的值
分别写入
admin表
里的zhanghao

mima
字段
sqlcommand
cmd
=
new
sqlcommand(sql,conn);//实例化sql语句执行对象

cmd.executenonquery();//执行sql语句
response.write(textbox1.text+"注册成功");//往页面输出信息
conn.close();//关闭数据库连接对象
conn.dispose();//释放内存

如何使用 C# ASP.Net 从 XML 文档中获取特定 XML 元素的列表?

【中文标题】如何使用 C# ASP.Net 从 XML 文档中获取特定 XML 元素的列表?【英文标题】:How to get list of specific XML elements from XML document using C# ASP.Net? 【发布时间】:2020-07-10 08:32:39 【问题描述】:

我正在尝试从 XML 文档中获取一组特定的元素,以使用 XSLT 文件显示。

我的代码是成功的,但是,我不知道如何根据选择的变化显示特定元素,而不是显示整个 XML 文档。

我的 C# 代码:

string strXSLTFile = Server.MapPath("EmployeeXSLT.xslt");
string strXMLFile = Server.MapPath("Employess.xml");

XmlReader reader = XmlReader.Create(strXMLFile);

XslCompiledTransform objXSLTransform = new XslCompiledTransform();
objXSLTransform.Load(strXSLTFile);

StringBuilder htmlOutput = new StringBuilder();
TextWriter htmlWriter = new StringWriter(htmlOutput);
objXSLTransform.Transform(reader, null, htmlWriter);
ltRss.Text = htmlOutput.ToString();
reader.Close();

我的 XML:

<?xml version="1.0" encoding="utf-8" ?>
<Employees>
  <Employee type="1">
    <ID>100</ID>
    <FirstName>Bala</FirstName>
    <LastName>Murugan</LastName>
    <Dept>Production Support</Dept>
  </Employee>
  <Employee type="2">
    <ID>101</ID>
    <FirstName>Peter</FirstName>
    <LastName>Laurence</LastName>
    <Dept>Development</Dept>
  </Employee>
  <Employee type="3">
    <ID>102</ID>
    <FirstName>Rick</FirstName>
    <LastName>Anderson</LastName>
    <Dept>Sales</Dept>
  </Employee>
  <Employee type="4">
    <ID>103</ID>
    <FirstName>Ramesh</FirstName>
    <LastName>Kumar</LastName>
    <Dept>HR</Dept>
  </Employee>
  <Employee type="5">
    <ID>104</ID>
    <FirstName>Katie</FirstName>
    <LastName>Yu</LastName>
    <Dept>Recruitment</Dept>
  </Employee>
  <Employee type="6">
    <ID>105</ID>
    <FirstName>Suresh</FirstName>
    <LastName>Babu</LastName>
    <Dept>Inventory</Dept>
  </Employee>
</Employees>

我的 XSLT:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <xsl:for-each select="//Employee">
      <div style="border:1px black solid;width:300px;margin:1px">
        <div>
          <b>Employee ID:</b>
          <xsl:value-of select="ID"/>
        </div>
        <div>
          <b>Name:</b>
          <xsl:value-of select="FirstName"/>
          <xsl:text> </xsl:text>
          <xsl:value-of select="LastName"/>
        </div>
        <div>
          <b>Department:</b>
          <xsl:value-of select="Dept"/>
        </div>
      </div>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

HTML:

<asp:Literal ID="ltRss" runat="server"></asp:Literal>

同样,我需要使用 C# 代码来根据用户选择来选择特定数据。假设特定员工的“type = 3”。

【问题讨论】:

【参考方案1】:

使用字典:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

namespace ConsoleApplication1

    class Program
    
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        
            XmlReader reader = XmlReader.Create(FILENAME);
            XmlSerializer serializer = new XmlSerializer(typeof(Employees));
            Employees employees = (Employees)serializer.Deserialize(reader);

            Dictionary<int, Employee> dict = employees.employees
                .GroupBy(x => x.ID, y => y)
                .ToDictionary(x => x.Key, y => y.FirstOrDefault());

            Employee e100 = dict[100];
        
    
    public class Employees
    
        [XmlElement("Employee")]
        public Employee[] employees  get; set; 
    

    public class Employee
    
        public int ID  get; set;
        public string FirstName  get; set;
        public string LastName  get; set;
        public string Dept  get; set;
    

【讨论】:

以上是关于Asp.net(C#) 获取 执行sql server 语句/存储过程后的 多个返回值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# ASP.Net 从 XML 文档中获取特定 XML 元素的列表?

使用 c# asp.net 获取 XML 数据并插入到 sql server

在 ASP.NET MVC Core(C#) 中执行 Oracle 存储过程 (PL/SQL)

ASP.NET相关事件及JS的执行顺序

如何通过 C# ASP.net 从 SQL Server 中的文本框中存储日期

如何使用 c# asp.net 从 url 获取数据?