【发布时间】:2011-04-21 16:42:30
【问题描述】:
我有一张表,其中有一列名为:
'eZip' (varbinary(5), null)。
现在我正在从这样的网络表单中添加价值:
cmd.Parameters.Add("@eZip", SqlDbType.VarBinary).Value = BitConverter.GetBytes(int.Parse(txtZip.Text.ToString()));
它可以工作,但不是输入有效的邮政编码,而是将其插入我的专栏:
<Binary data>
我在这里做错了什么?
【问题讨论】:
-
是什么让你说它正在将它插入你的列?
-
如果您将邮政编码存储在数据库中,请将列设为
char或varchar。首先将邮政编码转换为int是一个坏主意,然后将int转换为二进制是另一个坏主意。 -
@Adam:我查过了。我的 SP 在 MSSQL 2008 中。
-
@Musi: 那么 MSSQL 2008 中 Zip 的最佳数据类型应该是什么?
-
@Mayank:any RDBMS 中邮政编码的最佳类型是字符串类型,
char或varchar。如果您只想处理美国邮政编码,char(5)(或char(10),如果您想处理连字符+4)将是最佳选择。
标签: c# asp.net sql-server stored-procedures