【发布时间】:2017-10-16 12:20:59
【问题描述】:
我正在尝试将 PHP 项目传递给 ASP.NET,并且正在进行一些测试。回到怀疑,我已经完成了这段代码:
using System;
using System.Configuration;
using System.Data;
using MySql.Data.MySqlClient;
namespace project_t
{
public partial class _Default : System.Web.UI.Page
{
public string level_text;
public void Page_Load(object sender, EventArgs e) => people_box_repeater_method();
public void people_box_repeater_method()
{
using (MySqlConnection mysql_connection = new MySqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
MySqlDataAdapter mysql_data_adapter = new MySqlDataAdapter("SELECT * FROM employees", mysql_connection);
DataTable data_table = new DataTable();
mysql_data_adapter.Fill(data_table);
DataView data_view = new DataView(data_table);
data_view.Sort = "name";
data_view.Sort = "function";
data_view.Sort = "sector";
data_view.Sort = "location";
data_view.Sort = "mail";
data_view.Sort = "phone";
data_view.Sort = "photo";
people_box_repeater.DataSource = data_view;
people_box_repeater.DataBind();
string vartest = "4";
foreach (DataRow data_row in data_table.Rows) {
if ((string)data_row["level"] == vartest) { level_text = (string)data_row["level"]; System.Diagnostics.Debug.WriteLine(data_row["level"]); }
}
}
}
}
}
我的问题出在这部分:
string vartest = "4";
foreach (DataRow data_row in data_table.Rows) {
if ((string)data_row["level"] == vartest) { level_text = (string)data_row["level"]; System.Diagnostics.Debug.WriteLine(data_row["level"]); }
}
我放了两个数据输出,一个在我的 html 代码为 <% = level_text%> 的 .aspx 页面上,另一个在输出控制台上。
在我的数据库中,我有四行的“级别”列中的值为“4”。 At the console output, it returns me four rows corresponding to the database.
Now in the .aspx page the number "4" appears once. 我想在控制台输出中出现四倍的数字“4”。我做错了什么?
【问题讨论】:
-
连续 7 次调用对同一个 DataView 进行排序,你想做什么?
-
在创建
DataView并将DataView分配为DataSource之前 执行您的DataTable操作。换句话说,在`mysql_data_adapter.Fill(data_table);`之后移动你的3个“有问题的”行。 -
它是正确的。您正在用值“4”替换变量的值,因此最后在该变量中有“4”。如果要连接输出,请使用 label_text += value。
-
您将获得
level_text中的最后一个值,因为您使用的是相同的变量。尝试使用 List 并保存所有匹配的数据并在客户端运行 foreach 循环以一次显示所有数据。 -
@Steve 连续 7 次排序调用已修复,
+= value工作正常,谢谢!
标签: c# mysql asp.net visual-studio row