C# 如何将unicode(阿拉伯语)字符插入SQL Server数据库

C# 如何将unicode(阿拉伯语)字符插入SQL Server数据库,c#,asp.net,sql,sql-server,C#,Asp.net,Sql,Sql Server,我想插入Unicode字母我已经尝试将数据类型更改为nvarchar(max),我的select语句是 string str = "insert into Table1( (N'title), datee, post, cat, imageurl) values ('" + TextBox1.Text + "','" + DateTime.Now.ToShortDateString() + "','" + TextBox2.Text + "','" + DropDownList1.Select

我想插入Unicode字母我已经尝试将数据类型更改为
nvarchar(max)
,我的select语句是

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

您应该始终使用参数化查询来避免SQL注入攻击。参数还使您能够显式定义所需的数据类型和长度。此外,通过使用参数,您不需要处理大量的单引号和双引号等等-代码变得更干净、更易于阅读-而且您还避免了许多错误

尝试编写如下代码:

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

提示:使用参数化查询。@Janesabouchleich可以显示相关问题:查看以下帖子。它有你的答案。[如何在sql数据库中插入阿拉伯字符?][1][1]:@manolisxoundasis谢谢你解决了这个问题