La command d'insertion fonctionne sans erreurs dans C # mais datatables ne sont pas insérées dans MS SQL Server

J'essaie d'insert des données dans Microsoft SQL Server DB en utilisant C # et la command d'insertion fonctionne bien et je n'obtiens aucune erreur ou exception. Mais lorsque je vérifie ma database dans SQL Server, il n'y a aucun effet sur la table et les loggings ne sont pas insérés dans la table. C'est le code que j'essaie:

try { SqlConnection con1 = new SqlConnection(); con1.ConnectionSsortingng = "Server = (local); Database = My_DataBase; Integrated Security = true"; con1.Open(); SqlCommand cm1 = new SqlCommand(); cm1.Connection = con1; cm1.CommandText = "insert into Users values('" + update.Message.Chat.Id.ToSsortingng() + "','" + update.Message.Chat.FirstName + "','" + update.Message.Chat.LastName + "','@" + update.Message.Chat.Username + "','" + req1.Status + "')"; con1.Close(); } catch(Exception e) { Console.WriteLine(e.Message); continue; } 

J'ai vu des questions similaires ici et ici , mais les réponses n'ont pas résolu mon problème.

Aussi, lorsque j'insère des données manuellement dans la database et que j'exécute la command select comme mentionné ci-dessous, j'obtiens la réponse correcte, mais pas la command insert.

 SqlConnection con2 = new SqlConnection(); con2.ConnectionSsortingng = "Server = (local); Database = My_DataBase; Integrated Security = true"; con2.Open(); SqlDataAdapter da1 = new SqlDataAdapter("select * from Users where ChatID='" + update.Message.Chat.Id.ToSsortingng() + "'", con2); DataSet ds1 = new DataSet(); da1.Fill(ds1); con1.Close(); 

S'il vous plaît aidez-moi à résoudre ce problème.

En passant, je sais que ce type d'insertion n'est pas sûr et je tiens à vous faire savoir que ce n'est qu'une démo et que je vais le sécuriser contre l' injection sql.

Vous n'exécutez pas votre command nulle part. Vous avez besoin:

 cm1.ExecuteNonQuery(); 

Dans votre code, vous créez un object SqlCommand , puis vous lui SqlConnection une SqlConnection , mais dans aucun endroit où vous exécutez réellement la command. Votre code devrait ressembler à:

  SqlConnection con1 = new SqlConnection(); con1.ConnectionSsortingng = "Server = (local); Database = My_DataBase; Integrated Security = true"; con1.Open(); SqlCommand cm1 = new SqlCommand(); cm1.Connection = con1; cm1.CommandText = "insert into Users values('" + update.Message.Chat.Id.ToSsortingng() + "','" + update.Message.Chat.FirstName + "','" + update.Message.Chat.LastName + "','@" + update.Message.Chat.Username + "','" + req1.Status + "'"; cm1.ExecuteNonQuery(); con1.Close(); 

En dehors de la vulnérabilité de SQL Injection, vous devriez envisager d'inclure votre object SqlCommand et SqlConnection dans l'instruction statement, ce qui assurera la mise à disposition correcte des ressources non gérées.