Lynn Lee Ответов: 1

Как отобразить данные базы данных на этикетках для этого конкретного пользователя?


Я пробовал показывать, но, похоже, у него есть проблема.
Пожалуйста, помогите мне разобраться в этой проблеме.

Что я уже пробовал:

public void getQuestionOne()
        {
            string MYDBConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MYDBConnection"].ConnectionString;
            SqlConnection con = new SqlConnection(MYDBConnectionString);

            con.Open();
            string sql = "select question1, question2 from Customer where username=@UserID";
            SqlCommand cmd = new SqlCommand(sql, con);
            try
            {

                using (SqlDataReader read = cmd.ExecuteReader())
                {
                    while (read.Read())
                    {
                        lblqnsOne.Text = (read["question1"].ToString());
                        lblqnsTwo.Text = (read["question2"].ToString());

                    }
                }
            }
            finally
            {
                con.Close();
            }
        }

1 Ответов

Рейтинг:
2

Vincent Maverick Durano

Одна из очевидных причин, почему ваш код не работает, потому что вы не назначили параметр @UserID в вашем SQL-запросе. Чтобы исправить это, вы можете сделать что-то вроде этого:

private void GetQuestionOne(int userID){
     	String strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
            using(SqlConnection con = new SqlConnection(strConnString)){
            	using(SqlCommand cmd = new SqlCommand("SELECT question1, question2 from Customer where username=@UserID", con)){
			        con.Open();
                    cmd.Parameters.AddWithValue("@UserID", userID);
            		using (SqlDataReader read = cmd.ExecuteReader())
                        {
                            while (read.Read())
                            {
                                lblqnsOne.Text = read["question1"].ToString();
                                lblqnsTwo.Text = read["question2"].ToString();

                            }
                        }
	    	}
	    }
}


Совет: сделайте это привычкой, чтобы положить objects которые едят такие ресурсы, как SqlConnection, SqlCommand, SqlDataAdapter, SqlDataReader в using statement чтобы убедиться, что объекты будут правильно утилизированы и закрыты после их использования.