我有一个用C#编写的连接到SQL数据库的Windows应用程序。SQL中的空白C#
我有文本字段我的应用程序中,并更新这样的数据库:
string name = textBox60.Text;
string sql = "insert into myTable(Name) values ('" + name + "')";
DbHelper.ExecuteNonquery(sql);
public static int ExecuteNonquery(string sql)
{
using (SqlConnection cn = new SqlConnection(constr))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
else if (cn.State == ConnectionState.Open)
{
cn.Close();
cn.Open();
}
else if (cn.State == ConnectionState.Broken)
{
cn.Close();
cn.Open();
}
using (SqlCommand cm = new SqlCommand(sql, cn))
{
return cm.ExecuteNonQuery();
}
}
}
但对于数据库中的nchar
类型的每一个数据,他们是全白的空间。例如,如果我在文本字段中填写abc,那么当我检查数据库时,它将变成"abc___________________"
(空格)。
如何防止这种情况,而不仅仅是当我读取它们或修改字符串时使用UPDATE
数据SET TRIM(data)
如果我有大量这样的数据。
感谢您的帮助。
您应该将列类型更改为'NVARCHAR'以避免这种情况... – 2013-03-25 07:04:49
'NCHAR(n)'将由SQL Server填充到'n'的长度 - 这是使用列声明指定的大小。对于数据类型“CHAR”的变量列和固定大小列之间的区别,请阅读以下内容:http://msdn.microsoft.com/en-us/library/ms186939.aspx – 2013-03-25 07:07:46
它的工作原理,谢谢 – AkariKamigishi 2013-03-25 07:08:45