3 votes

Comment insérer des caractères unicodes (arabes) dans une base de données SQL Server ?

Je veux insérer des lettres Unicode J'ai déjà essayé de changer les types de données en nvarchar(max) et mon instruction de sélection est

string str = "insert into Table1( (N'title), datee, post, cat, imageurl) values  ('" + TextBox1.Text + "','" + DateTime.Now.ToShortDateString() + "','" + TextBox2.Text + "','" + DropDownList1.SelectedItem.Text + "','" + path+"')";`

5voto

marc_s Points 321990

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();
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X