C#:用于nVarChar的SqlCeParameter DbType?

时间:2011-06-20 14:45:34

标签: c# .net sql-server-ce

首先,我喜欢指定数据类型,我鄙视AddWithValue函数。

我正在.NET 4.0下构建一个可在用户PC上运行的SqlCeServer 3.5本地数据库应用程序。

当我创建表格时,我使用NVarChar(50)来指定我的字符串字段。

这似乎工作正常,我可以打开表来验证 Microsoft SQL Server Management Studio 2008 中的所有功能。

当我将数据插入表格时,我使用

public static SqlCeParameter ParameterString(string ColumnName, string value) {
  SqlCeParameter p = new SqlCeParameter();
  p.ParameterName = string.Format("@{0}", ColumnName);
  p.DataType = DbType.String;
  p.Size = 50;
  p.Value = value;
  return p;
}

插入此数据时,没有错误,但未插入数据。其他数据类型(intDateTimefloat等)插入时没有任何问题。

问:我需要指定一些其他DbType作为NVarChar插入吗?

3 个答案:

答案 0 :(得分:3)

DbType枚举对于所有数据库都是通用的,因此它不包含特定于SQL Server的所有数据类型。使用SqlDbType

SqlCeParameter p = new SqlCeParameter(ColumnName, SqlDbType.NVarChar, 50);
p.Value = value;

答案 1 :(得分:2)

由于某种原因,您可以使用两个属性来设置类型DbTypeSqlDbType。根据MSDN:

  

链接SqlDbType和DbType。因此,设置DbType会将SqlDbType更改为支持SqlDbType。

因此SqlDbType是主要类型,只需设置DbType即可将其更改为近似值。

在指定大于255的Length时,您可能还想阅读this post出现问题的地方。

答案 2 :(得分:1)

是,

SqlDbType.NVarChar

我希望这会有所帮助