gpt4 book ai didi

c# - 通过 C# 中的列表列出数据库值

转载 作者:行者123 更新时间:2023-11-29 11:56:45 25 4
gpt4 key购买 nike

我正在尝试显示分配给 C# 中的列表的数据库值,但在尝试显示它们时遇到了问题。它不是我想要显示的内容,而是显示:System.Collections.Generic.List`1[System.String]

这是我的代码:

public List<string>[] selectQuery(string query)
{
// create a list to hold the firt name, last name, and password
List<string>[] list = new List<string>[4];

list[0] = new List<string>(); // will hold the first name
list[1] = new List<string>(); // will hold the last name
list[2] = new List<string>(); // will hold the username
list[3] = new List<string>(); // will hold the password

if (this.openDbConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, this.connection);

MySqlDataReader dr = cmd.ExecuteReader();

// read the data and store it in the list
while (dr.Read())
{
list[0].Add(dr["first_name"] + "");
list[1].Add(dr["last_name"] + "");
list[2].Add(dr["username"] + "");
list[3].Add(dr["password"] + "");
}

// close reading the data operator
dr.Close();

// close connection
this.connection.Close();

// return the list of results to be displayed
return list;
}
else
{
return list;
}
}


List<string>[] data = db.selectQuery("SELECT first_name, last_name, username, password FROM member WHERE username = '" + name + "'" + " AND password = PASSWORD('" + pass + "')");

if (data != null)
{
// assign the username, password, first and last name to the session variables
Session["first_name"] = data[0].ToString();
Session["last_name"] = data[1].ToString();
Session["username"] = data[2].ToString();
Session["password"] = data[3].ToString();


// redirect to member page
Response.Redirect("members.aspx", false);
}

html 是:

    <tr>
<td id="user"><%=Session["username"].ToString()%></td>
<td id="greeting"><%=Session["first_name"].ToString()%></td>
</tr>

如有任何帮助,我们将不胜感激!

谢谢!

最佳答案

这比它需要的要复杂得多。创建一个对象:

public class User
{
public string first_name { get; set; }
public string last_name { get; set; }
public string username { get; set; }
public string password { get; set; }
public User()
{
}
}

然后在您的代码中:

public User selectQuery(string query)
{
User myuser = new User();

//use this if you want to create a List of users and change the method type to "List<User>" and the return to userList.
List<User> userList = new List<User> ();

if (this.openDbConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, this.connection);

MySqlDataReader dr = cmd.ExecuteReader();

// read the data and store it in the list
while (dr.Read())
{
myuser.first_name = dr["first_name"] + "";
myuser.last_name= dr["last_name"] + "");
myuser.username = dr["username"] + "");
myuser.password = dr["password"] + "");

//use the below line only if you are expecting to return multiple users
userList.Add(myuser);
}

// close reading the data operator
dr.Close();

// close connection
this.connection.Close();

// return the list of results to be displayed
return myuser;
}
else
{
return myuser;
}
}

最后,您只需调用该方法,然后访问返回值的属性

User myuser = db.selectQuery("blah");

if (data != null)
{
// assign the username, password, first and last name to the session variables
Session["first_name"] = myuser.first_name.ToString();
Session["last_name"] = myuser.last_name.ToString();
Session["username"] = myuser.username.ToString();
Session["password"] = myuser.password.ToString();
}

等等,或者如果您返回列表,请执行以下操作

List<User> myusers = db.selectQuery("blah")

if(!myusers.Count == 1) //this will let you check if it returns multiple users for some reason
{
Session["first_name"] = myusers[0].first_name.ToString();
Session["last_name"] = myusers[0].last_name.ToString();
Session["username"] = myusers[0].username.ToString();
Session["password"] = myusers[0].password.ToString();
}

关于c# - 通过 C# 中的列表列出数据库值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33073072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com