public IEnumerable <Survey_Question> GetSurvey_Questions(Survey s) { var survey_questions = new List <Survey_Question>(); using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { //ouvre la connection à la base de donnée. var cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "SELECT QuestionId FROM Survey_Question WHERE SurveyId = @surveyId ;", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. }; // permet de definir les variables values dans CommandText. cmd.Parameters.AddWithValue("@SurveyId", s.Id); sqlConnection1.Open(); var result = cmd.ExecuteReader(); // execute la requete et return l'element de la première ligne à la première colonne while (result.Read()) { var survey_question = new Survey_Question() { SurveyId = Convert.ToInt32(result["SurveyId"]), QuestionId = Convert.ToInt32(result["QuestionId"]) }; survey_questions.Add(survey_question); } ; } return(survey_questions); }
//methode permettant d'insérer une question dans la base de donnée public int CreateQuestion(Question q) { using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { SqlCommand cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "INSERT Question (QuestionCategoryId, QuestionDifficultyId, QuestionTypeId,Content) VALUES (@CategoryId,@DifficultyId, @QuestionTypeID,@Content); SELECT SCOPE_IDENTITY();", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. }; // permet de definir les variables values dans CommandText. cmd.Parameters.AddWithValue("@CategoryId", q.Category.Id); cmd.Parameters.AddWithValue("@DifficultyId", q.Difficulty.Id); cmd.Parameters.AddWithValue("@QuestionTypeID", q.Type.Id); cmd.Parameters.AddWithValue("@Content", q.Content); sqlConnection1.Open(); //ouvre la connection à la base de donnée. var result = cmd.ExecuteScalar(); // execute la requete et return l'element de la première ligne à la première colonne if (result != null && int.TryParse(result.ToString(), out var questionId)) // convertit result.ToString() en int et le stock dans questionId { return(questionId); } return(0); } }
public int UpdateQuestion(Question q) { using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { SqlCommand cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "UPDATE Question SET QuestionCategoryId = @CategoryId , QuestionDifficultyId = @DifficultyId, QuestionTypeId = @QuestionTypeID,Content=@Content WHERE Id = @QuestionId", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. }; // permet de definir les variables values dans CommandText. cmd.Parameters.AddWithValue("@QuestionId", q.Id); cmd.Parameters.AddWithValue("@CategoryId", q.Category.Id); cmd.Parameters.AddWithValue("@DifficultyId", q.Difficulty.Id); cmd.Parameters.AddWithValue("@QuestionTypeID", q.Type.Id); cmd.Parameters.AddWithValue("@Content", q.Content); sqlConnection1.Open(); //ouvre la connection à la base de donnée. var result = cmd.ExecuteNonQuery(); // execute et retoune la premier ligne if (result > 0) { return(q.Id); } return(0); } }
public Answer GetById(int answerId) { // Use ADO.Net to DB access //objet de connection using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) { // Do work here SqlCommand cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "SELECT QuestionId,Content FROM Answer WHERE Id = @answerId;", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. }; cmd.Parameters.AddWithValue("@answerId", answerId); sqlConnection1.Open(); var result = cmd.ExecuteReader(); result.Read(); var answer = new Answer { Id = Convert.ToInt32(result["Id"]),//recupère l'id de question dans la database et le converti QuestionId = Convert.ToInt32(result["QuestonId"]), Content = result["Content"].ToString() }; return(answer); } }
public int UpdateAnswer(Answer r) { using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { SqlCommand cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "UPDATE Answer SET Content = @Content WHERE Id = @answerId", Connection = sqlConnection1, // etablie la connection. }; // permet de definir les variables values dans CommandText. cmd.Parameters.AddWithValue("@answerId", r.Id); cmd.Parameters.AddWithValue("@Content", r.Content); sqlConnection1.Open(); //ouvre la connection à la base de donnée. var result = cmd.ExecuteNonQuery(); // execute et retoune la premier ligne if (result > 0 && int.TryParse(result.ToString(), out var questionId)) { return(questionId); } return(0); } }
public Survey SelectSurveyInfo(int surveyId) { using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { SqlCommand cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "SELECT Name, SurveyEvaluation, CreationDate FROM Survey Where Id = @Id", Connection = sqlConnection1, // etablie la connection. }; sqlConnection1.Open(); cmd.Parameters.AddWithValue("@Id", surveyId); var resultReader = cmd.ExecuteReader(); resultReader.Read(); var s = new Survey() { Name = resultReader["Name"].ToString(), SurveyEvaluation = resultReader["SurveyEvaluation"]?.ToString(), }; if (DateTime.TryParse(resultReader["CreationDate"]?.ToString(), out var creationDate)) { s.CreationDate = creationDate; } return(s); } }
public int UpdateSurvey(Survey q) { using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { SqlCommand cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "UPDATE Question SET Name = @Name, @SurveyEvaluation = @SurveyEvaluation, WHERE Id = @Id", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. }; // permet de definir les variables values dans CommandText. cmd.Parameters.AddWithValue("@Id", q.Id); cmd.Parameters.AddWithValue("@Name", q.Name); cmd.Parameters.AddWithValue("@SurveyEvaluation", q.SurveyEvaluation); sqlConnection1.Open(); //ouvre la connection à la base de donnée. var result = cmd.ExecuteNonQuery(); // execute et retoune la premier ligne if (result > 0) { return(q.Id); } return(0); } }
public void CreateSurvey(string name, List <int> questionIds) { using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { sqlConnection1.Open(); //ouvre la connection à la base de donnée. var transaction = sqlConnection1.BeginTransaction(); try { var cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "INSERT Survey (Name) VALUES (@Name); SELECT SCOPE_IDENTITY();", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. Transaction = transaction }; // permet de definir les variables values dans CommandText. cmd.Parameters.AddWithValue("@Name", name); var result = cmd.ExecuteScalar(); // execute la requete et return l'element de la première ligne à la première colonne if (result != null && int.TryParse(result.ToString(), out var surveyId)) // convertit result.ToString() en int et le stock dans questionId { foreach (var questionId in questionIds) { var cmd2 = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "INSERT Survey_Question (SurveyId,QuestionId) VALUES (@SurveyId,@QuestionId);", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. Transaction = transaction }; // permet de definir les variables values dans CommandText. cmd2.Parameters.AddWithValue("@SurveyId", surveyId); cmd2.Parameters.AddWithValue("@QuestionId", questionId); cmd2.ExecuteNonQuery(); } } transaction.Commit(); } catch { transaction.Rollback(); throw; } } }
public void DeleteSurvey(int surveyId) { using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { sqlConnection1.Open(); var transaction = sqlConnection1.BeginTransaction(); try { SqlCommand cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "DELETE FROM Survey WHERE Id = @Id", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. Transaction = transaction }; //ouvre la connection à la base de donnée. // permet de definir les variables values dans CommandText. cmd.Parameters.AddWithValue("@Id", surveyId); var result = cmd.ExecuteNonQuery(); if (result > null && int.TryParse(result.ToString(), out var s)) // convertit result.ToString() en int et le stock dans s { var cmd2 = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "DELETE FROM Survey_Question WHERE SurveyId = @sId;", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. Transaction = transaction }; // permet de definir les variables values dans CommandText. cmd2.Parameters.AddWithValue("@sId", surveyId); cmd2.ExecuteNonQuery(); } transaction.Commit(); } catch { transaction.Rollback(); throw; } } }
public void DeleteQuestionSurvey(int questionId) { using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { SqlCommand cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "DELETE FROM Survey_Question WHERE QuestionId = @questionId", // stock la requete sql dans commandText. Connection = sqlConnection1, // etablie la connection. }; // permet de definir les variables values dans CommandText. cmd.Parameters.AddWithValue("@questionId", questionId); sqlConnection1.Open(); //ouvre la connection à la base de donnée. cmd.ExecuteNonQuery(); } }
public Question GetBydId(int questionId) { // Use ADO.Net to DB access //objet de connection using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) { // Do work here SqlCommand cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = @" SELECT q.Id, q.QuestionCategoryId, q.QuestionDifficultyId, q.QuestionTypeId, q.Content, c.Name AS QuestionCategoryName, d.QuestionDifficultyLevel , qt.Name AS QuestionTypeName, a.content AS AnwserContent FROM Question q INNER JOIN QuestionDifficulty d ON q.QuestionDifficultyId = d.Id INNER JOIN QuestionType qt ON q.QuestionTypeId = qt.Id INNER JOIN QuestionCategory c ON q.QuestionCategoryId = c.Id INNER JOIN Answer a ON q.Id = a.QuestionId WHERE q.Id = @questionId", Connection = sqlConnection1, // etablie la connection. }; cmd.Parameters.AddWithValue("@questionId", questionId); sqlConnection1.Open(); var result = cmd.ExecuteReader(); result.Read(); var question = new Question() { Id = Convert.ToInt32(result["Id"]),//recupère l'id de question dans la database et le converti Category = new QuestionCategory() { Id = Convert.ToInt32(result["QuestionCategoryId"]), Name = result["QuestionCategoryName"].ToString() }, Content = result["Content"].ToString(), Difficulty = new QuestionDifficulty() { Id = Convert.ToInt32(result["QuestionDifficultyId"]), DifficultyLevel = result["QuestionDifficultyLevel"].ToString() }, Type = new QuestionType() { Id = Convert.ToInt32(result["QuestionTypeId"]), Name = result["QuestionTypeName"].ToString() } }; //question.Answers = _answerDao.GetByQuestionId(question.Id); return(question); } }
public IEnumerable <Question> GetSurvey_Questions(int surveyId) { IEnumerable <Question> questions = new List <Question>(); IEnumerable <Answer> answers = new List <Answer>(); using (SqlConnection sqlConnection1 = new SqlConnection(_connectionString)) // using permet de refermer la connection après ouverture { //ouvre la connection à la base de donnée. var cmd = new SqlCommand // objet cmd me permet d'exécuter des requêtes SQL { CommandType = CommandType.Text, // methode permettant de definir le type de commande (text = une commande sql; Storeprocedure= le nom de la procedure stockée; TableDirect= le nom d'une table. CommandText = "SELECT QuestionId FROM Survey_Question WHERE SurveyId = @surveyId;", // stock la requete sql dans commandText. SCOPE_IDENTITY renvoie l'Id de la question inseré. Connection = sqlConnection1, // etablie la connection. }; // permet de definir les variables values dans CommandText. cmd.Parameters.AddWithValue("@SurveyId", surveyId); sqlConnection1.Open(); var result = cmd.ExecuteReader(); // execute la requete et return l'element de la première ligne à la première colonne var survey_questions = new List <Survey_Question>(); while (result.Read()) { var survey_question = new Survey_Question() { SurveyId = surveyId, QuestionId = Convert.ToInt32(result["QuestionId"]) }; survey_questions.Add(survey_question); } if (survey_questions.Any()) { questions = _questionDao.GetAll()?.Where(q => survey_questions.Any(sq => sq.QuestionId == q.Id)); } //une autre manière de recupération de question. //foreach (var element in survey_questions) //{ // var getQuestionById = _questionDao.GetBydId(element.QuestionId); // var // foreach (var question in questions) // { // var q = new Question() // { // Id = getQuestionById.Id, // Content = getQuestionById.Content, // Category = getQuestionById.Category, // Difficulty = getQuestionById.Difficulty, // Type = getQuestionById.Type // }; // questions.Add(q); // } //} //}; } return(questions); }