Vous devez toujours utiliser des requêtes paramétrées pour éviter les attaques par injection SQL. Les paramètres vous permettent également de définir explicitement ce que vous voulez faire. types de données et quelle longueur vous voulez. De plus, en utilisant des paramètres, vous n'avez pas besoin de manipuler de nombreux guillemets simples et doubles, etc. Le code devient beaucoup plus propre et plus facile à lire - et vous évitez aussi beaucoup d'erreurs !
Essayez de coder quelque chose comme ça :
// define your INSERT statement with PARAMETERS
string insertStmt = "INSERT INTO dbo.Table1(title, datee, post, cat, imageurl) " +
"VALUES(@title, @datee, @post, @cat, @imageurl)";
// define connection and command
using(SqlConnection conn = new SqlConnection(yourConnectionStringHere))
using (SqlCommand cmd = new SqlCommand(insertStmt, conn))
{
// define parameters and set their values
cmd.Parameters.Add("@title", SqlDbType.NVarChar, 100).Value = TextBox1.Text.Trim();
cmd.Parameters.Add("@datee", SqlDbType.DateTime).Value = DateTime.Now;
cmd.Parameters.Add("@post", SqlDbType.NVarChar, 100).Value = TextBox2.Text.Trim();
cmd.Parameters.Add("@cat", SqlDbType.NVarChar, 100).Value = DropDownList1.SelectedItem.Text.Trim();
cmd.Parameters.Add("@imageurl", SqlDbType.NVarChar, 250).Value = path;
// open connection, execute query, close connection
conn.Open();
int rowsInserted = cmd.ExecuteNonQuery();
conn.Close();
}