C#如何使一个foreach循环不重写字符串变量
问题描述:
我想通过一个PHP项目到ASP.NET,我正在做一些测试。回到怀疑,我有这样的代码来完成:C#如何使一个foreach循环不重写字符串变量
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"]); }
}
我把两个数据输出,一个在.aspx页面,我的HTML代码<% = level_text%>
和另一个在输出控制台上。
在我的数据库中,我有四行“level”列中的值为“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”就像在控制台输出。我究竟做错了什么?
答
每次你的if语句是真的,你都这样做。 level_text =(string)data_row [“level”]; 这意味着它每次都设置为相同的值。 如果使用+ =而不是=,它会添加一些东西到字符串中。
例如,你的代码现在正在做level_text = 4;每次用+ =你会得到level_text = 4444
+0
它工作完美,谢谢! –
你想用7个连续的调用来排序相同的DataView? – Steve
在*创建'DataView'并将'DataView'指定为'DataSource'之前执行'DataTable'操纵*。换句话说,在'mysql_data_adapter.Fill(data_table);' – Nino
之后移动你的3个“有问题”的行,它是正确的。你正在用值“4”替换变量的值,所以最后你在那个变量中有“4”。如果要连接使用label_text + = value的输出。 – Steve