我有一个只存储6位数字的表格,并且有第一个字母包含0的数字,即使有第一个字母也包含多于0的数字..
using (TransactionScope scope = new TransactionScope())
{
using (SqlConnection conn = new SqlConnection(constr))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.Add(new SqlParameter("@numType", numTyp));
cmd.Parameters.Add(new SqlParameter("@numFrom", textBox1.Text));
cmd.Parameters.Add(new SqlParameter("@numTo", textBox2.Text));
cmd.ExecuteNonQuery();
}
conn.Close();
}
scope.Complete();
正在保存数据并检索但是如果第一个数字是0,则sql省略它们,它们很重要...例如数字001234在db中保存为1234 ..所以如何解决这个我搜索但没有运气..
使用Sqlserver 2008 visualstudio 2010 c#
希望它不含糊,谢谢你提前
编辑:我使用int作为数据类型
答案 0 :(得分:4)
这是一个数据类型问题:如果您使用int
,则会存储数值,因此001234将存储为数字1234.
您可以稍后重新创建零填充,但它不是存储数据的一部分:0001234
与01234
或1234
的整数相同}。
String.Format()
。0001234
和1234
的值不同,请使用类似字符串的数据类型答案 1 :(得分:1)
你做不到。问题不在于检索,而是数据作为整数存储在int列中,而不是字符串格式化。
如果您希望数据库在int之前存储数字0,则使用其他数据类型,可以是字符串,其中一个是零的数量,也可以是更适合您精确需求的其他格式。
编辑:如果您的零没有意义(它们只是为了补充),请将您的格式保存为int,并在开头添加尽可能多的“0”。
答案 2 :(得分:-2)