首先,我喜欢指定数据类型,我鄙视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;
}
插入此数据时,没有错误,但未插入数据。其他数据类型(int
,DateTime
,float
等)插入时没有任何问题。
问:我需要指定一些其他DbType
作为NVarChar
插入吗?
答案 0 :(得分:3)
DbType
枚举对于所有数据库都是通用的,因此它不包含特定于SQL Server的所有数据类型。使用SqlDbType
:
SqlCeParameter p = new SqlCeParameter(ColumnName, SqlDbType.NVarChar, 50);
p.Value = value;
答案 1 :(得分:2)
由于某种原因,您可以使用两个属性来设置类型DbType
和SqlDbType
。根据MSDN:
链接SqlDbType和DbType。因此,设置DbType会将SqlDbType更改为支持SqlDbType。
因此SqlDbType
是主要类型,只需设置DbType
即可将其更改为近似值。
在指定大于255的Length
时,您可能还想阅读this post出现问题的地方。
答案 2 :(得分:1)
是,
SqlDbType.NVarChar
我希望这会有所帮助