asp.net - 在后面的页面上调用方法值
问题描述
我在 mail.cs 文件中有这个方法,它采用一个参数,调用存储过程并从数据库返回值。
public void select(string type)
{
string constr = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("EmailSetup_CRUD"))
{
cmd.Parameters.AddWithValue("@Action", "SELECT");
cmd.Parameters.AddWithValue("@Type", type);
}
}
}
我想在后面的页面上调用此方法的返回值并将其与标签绑定。请建议如何做到这一点。
在页面加载后面的页面上,我已经这样做了
mail callmail = new mail()
现在我 label1.text 如何将返回值分配给 label1.text。
方法返回 5 列,我的页面上有 5 个标签,因此每列将分配给每个标签。
解决方案
根据讨论和假设,我做了以下代码
邮件.cs
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace tempApp4
{
public class mail
{
public DataTable select(string type)
{
string constr = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("EmailSetup_CRUD", con))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Action", "SELECT");
cmd.Parameters.AddWithValue("@Type", type);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
return dataSet.Tables[0];
}
}
}
}
}
WebForm1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="tempApp4.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="label1" runat="server" />
<asp:Label ID="label2" runat="server" />
<asp:Label ID="label3" runat="server" />
<asp:Label ID="label4" runat="server" />
<asp:Label ID="label5" runat="server" />
</form>
</body>
</html>
WebForm1.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace tempApp4
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
mail mail = new mail();
var table = mail.select("TYPE_VALUE");
label1.Text = Convert.ToString(table.Rows[0][0]);
label2.Text = Convert.ToString(table.Rows[0][1]);
label3.Text = Convert.ToString(table.Rows[0][2]);
label4.Text = Convert.ToString(table.Rows[0][3]);
label5.Text = Convert.ToString(table.Rows[0][4]);
}
}
}
SqlDataAdapter “适配器”用于从 DB 中获取记录并将其填充到 dataSet 中。数据集包含许多表,因为您的过程返回单个表,“select”方法最后返回单个表:
return dataSet.Tables[0];
因此“select”方法的返回类型为“DataTable”。然后最后使用邮件类的对象访问代码后面的返回值,并通过访问列来填充标签,如下所示:
label1.Text = Convert.ToString(table.Rows[0][0]);
“table.Rows[0][0]”中的第一个 0 用于行,第二个用于列。对于列,您可以选择将列的名称指定为:
label1.Text = Convert.ToString(table.Rows[0]["COLUMN_NAME"]);
因为我不知道我正在使用索引的列名。
希望能帮助到你
推荐阅读
- c# - 在“长”间隔后完成可观察序列
- postgresql - 用于 BETWEEN 和 ORDER BY 的 Postgresql 多列索引
- php - 使 SQL 查询仅选择 WHERE 条件之一
- e-commerce - 在 Kentico 中以编程方式注入翻译产品时出错,我做得对吗?
- css - 我在将 Css 文件链接到 Django 模板时遇到问题
- python - 自定义词形还原词并附加到 WordNetLemmatizer
- sql - 尝试使用 dplyr 在 R 中的 SQL 数据库中选择/过滤数据
- mysql - 如何在 mysql 中使用一个选择查询在两列之间切换值?
- symfony - Symfony Doctrine SortBy ToMany 关系对象
- html - 如何使用 XPATH 在跨度类下创建所有文本的连接字符串