我的代码C#有问题。
在数据库表 Users
中,我的用户有两个关税计划 (multitariff)
。
我需要使用从数据库中提取的平面值将我的标签 plane
填充到单个用户。
我想创建一个 list of classes
,其中存储了平面值。
我尝试过使用此解决方案但没有成功,因为输出只是平面的第一个值而不是 multitariff user
的所有平面值。
我非常感谢您在解决这个问题时能给我的任何帮助。
这是我的代码:
string plane;
List<string> planeList = new List<string>();
public class Lists
{
static void Main()
{
List<string> planeList = new List<string>();
}
}
protected void Users()
{
using (OdbcConnection cn =
new OdbcConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString))
{
sql = " SELECT * FROM Users WHERE Id = ? ";
using (OdbcCommand command =
new OdbcCommand(sql, cn))
{
try
{
command.Parameters.AddWithValue("param1", Server.UrlDecode(Request.Cookies["Id"].Value));
command.Connection.Open();
using (OdbcDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
plane = reader["plane"].ToString();
planeList.Add(plane.ToString());
}
}
}
catch (Exception ex)
{
throw new ApplicationException("operation failed!", ex);
}
finally
{
command.Connection.Close();
}
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Users();
if (Request.Cookies["Id"] != null)
{
foreach (string plane in planeList)
{
plane.Text = "User plane: " + plane.ToString().Trim() + "<br />";
}
}
}
}
答案 0 :(得分:2)
您每次都会覆盖标签的价值:
foreach (string plane in planeList)
{
plane.Text = "User plane: " + plane.ToString().Trim() + "<br />";
}
不应覆盖它,而应连接字符串:
plane.Text = "User plane: ";
foreach (string item in planeList)
{
plane.Text += item.ToString().Trim() + "<br />"; // I suppose plane is a label here, so your foreach variable should be called different (item in this case)
}