C# SQL 记录从 table 到列表
C# SQL records from table to list
我正在尝试从 table 获取所有记录并在控制台中打印出来。
我的Userlist.cs
public List<Userlist> CreateList()
{
using (SqlConnection conn = new SqlConnection(Sqlstring))
{
using (SqlCommand cmd = new SqlCommand(ListCreateQuery, conn))
{
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
List<Userlist> Users = new List<Userlist>();
while (reader.Read())
{
Userlist U = new Userlist();
U.fornavn = (string)reader["Fornavn"];
U.efternavn = (string)reader["Efternavn"];
U.mail = (string)reader["Mail"];
U.tlfnr = (string)reader["TlfNr"];
Users.Add(U);
}
return Users;
}
}
}
}
然后我尝试从我的 main 打印出来(或者一个方法很好)
if (UserAnswer == "1")
{
Console.Clear();
Userlist UL = new Userlist();
foreach (Userlist user in UL.CreateList())
{
Console.WriteLine(user);
}
Console.ReadKey();
}
当我运行它时,它只打印mynamespace.userlist
3次(我的记录数)
您正在对象上使用 toString,因此它会打印对象名称
您需要在每个 属性 上使用它并写入:
foreach(Userlist user in UL.CreateList())
{
Console.WriteLine(user.fornavn);
Console.WriteLine(user.efternavn );
Console.WriteLine(user.mail);
Console.WriteLine(user.tlfnr);
}
如果对象不是 null
,将 class 对象传递到 Console.WriteLine
将调用它的 .ToString()
方法。如果您希望在调用 .ToString()
时显示 属性 值,您可以 override
您的 class:
中的方法
public class Userlist
{
.....
public override string ToString()
{
return "fornavn: " + fornavn + " efternavn: " + efternavn + " mail: " + mail
+ " tlfnr: " + tlfnr;
}
}
我正在尝试从 table 获取所有记录并在控制台中打印出来。
我的Userlist.cs
public List<Userlist> CreateList()
{
using (SqlConnection conn = new SqlConnection(Sqlstring))
{
using (SqlCommand cmd = new SqlCommand(ListCreateQuery, conn))
{
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
List<Userlist> Users = new List<Userlist>();
while (reader.Read())
{
Userlist U = new Userlist();
U.fornavn = (string)reader["Fornavn"];
U.efternavn = (string)reader["Efternavn"];
U.mail = (string)reader["Mail"];
U.tlfnr = (string)reader["TlfNr"];
Users.Add(U);
}
return Users;
}
}
}
}
然后我尝试从我的 main 打印出来(或者一个方法很好)
if (UserAnswer == "1")
{
Console.Clear();
Userlist UL = new Userlist();
foreach (Userlist user in UL.CreateList())
{
Console.WriteLine(user);
}
Console.ReadKey();
}
当我运行它时,它只打印mynamespace.userlist
3次(我的记录数)
您正在对象上使用 toString,因此它会打印对象名称
您需要在每个 属性 上使用它并写入:
foreach(Userlist user in UL.CreateList())
{
Console.WriteLine(user.fornavn);
Console.WriteLine(user.efternavn );
Console.WriteLine(user.mail);
Console.WriteLine(user.tlfnr);
}
如果对象不是 null
,将 class 对象传递到 Console.WriteLine
将调用它的 .ToString()
方法。如果您希望在调用 .ToString()
时显示 属性 值,您可以 override
您的 class:
public class Userlist
{
.....
public override string ToString()
{
return "fornavn: " + fornavn + " efternavn: " + efternavn + " mail: " + mail
+ " tlfnr: " + tlfnr;
}
}