我在C#中有一个select语句,我想知道是否可以在两个不同的标签中使用显示电子邮件和用户名。
以下是查询:
SqlDataReader reader;
string sendMessage = "SELECT Email, username FROM aspnet_Membership WHERE UserId = @UserId";
using (SqlConnection myConnection = new SqlConnection(connectionString))
{
myConnection.Open();
SqlCommand myCommand = new SqlCommand(sendMessage, myConnection);
myCommand.Parameters.AddWithValue("@UserId", newUserId);
ArrayList emailArray = new ArrayList();
label1 = myCommand.ExecuteReader();
label2 = myCommand.ExecuteReader();
}
谢谢
答案 0 :(得分:1)
是的,当然,但您需要只调用一次ExecuteReader,然后使用返回的SqlDataReader获取当前记录的字段值。 (当然读者返回的文本应该分配给标签的Text属性,而不是标签本身)
string sendMessage = "SELECT Email, username FROM aspnet_Membership WHERE UserId = @UserId";
using (SqlConnection myConnection = new SqlConnection(connectionString))
using (SqlCommand myCommand = new SqlCommand(sendMessage, myConnection))
{
myConnection.Open();
myCommand.Parameters.AddWithValue("@UserId", newUserId);
using(SqlDataReader reader = myCommand.ExecuteReader())
{
while(reader.Read())
{
label1.Text = reader.GetString(reader.GetOrdinal("EMail"));
label2.Text = reader.GetString(reader.GetOrdinal("UserName"));
}
}
}
另外,不要忘记将命令和阅读器等一次性对象放在适当的使用声明
中答案 1 :(得分:1)
只需拨打ExecuteReader
一次,然后调用Read
方法。然后您可以使用索引器获取值:
reader = myCommand.ExecuteReader();
reader.Read();
label1.Text = reader["Email"].ToString();
label2.Text = reader["username"].ToString();