gpt4 book ai didi

mysql - asp.net 数据库只返回一个值而不是整个集合

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:28 24 4
gpt4 key购买 nike

我正在尝试从我的数据库中获取有关特定用户的信息:

 public string GetUserData()
{
string conString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(conString))
{

SqlCommand com = new SqlCommand("SELECT lastName , phoneNo , creditCardNo , dateOfBirth FROM UserExtendedDataSet WHERE UserId = @UserId", con);

com.Parameters.Add("@UserId", SqlDbType.NVarChar).Value = getUserId();

con.Open();

string result = Convert.ToString(com.ExecuteScalar());
StatusLabel.Text = result;
return result;
}
}

问题是它只返回第一个表数据(在本例中是 lastName),我知道我可以为每个字段编写单独的查询,但我认为这不是很有效。

有没有办法通过一个查询获取这些数据?

最佳答案

您需要调用ExecuteReader在命令上并使用 SqlDataReader 的实例由命令返回。 ExecuteScalar 仅返回第一行的第一列。

 using(SqlDataReader reader = com.ExecuteReader())
{
if(reader.Read()
{
StatusLabel.Text = reader[0].ToString() + " " + reader[1].ToString();
.... other labels for other fields
}
}

相反,ExecuteReader 在您调用 Read 方法后移动到第一行(如果有的话),然后该行的每一列都可以作为索引数组从阅读器中获得。 (在应用像 ToString() 这样的任何转换之前,请注意空值)

顺便说一句,你的标签说 MySql 但你在命名空间 SqlClient 中使用 Sql Server 类?

关于mysql - asp.net 数据库只返回一个值而不是整个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20458441/

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