您能帮我解决我的问题吗?我正在使用SQL Server数据库,这是一个“计数”按钮,我们在上面使用此代码:
int a;
using (SqlCommand command2 = new SqlCommand("select * from voiceno WHERE ID = '1'", con))
{
con.Close();
con.Open();
SqlDataReader dr;
dr = command2.ExecuteReader();
if (dr.Read())
{
string val = dr[1].ToString();
if (val == "0")
{
txtinvoiceno.Text = "00001";
}
else
{
a = Convert.ToInt32(dr[1].ToString());
a = a + 00001;
txtinvoiceno.Text = a.ToString();
}
}
}
和我的桌子:
CREATE TABLE [dbo].[voiceno](
[ID] [int] IDENTITY(1,1) NOT NULL,
[voiceno] [nvarchar](50) NULL
当我获得第一次重新编码时,它以第二次重新编码中的00001 bout开始给了我2(我需要使其为00002)
答案 0 :(得分:3)
您需要做的只是格式化:在这里,您有一个整数,并且想给它们显示前缀零。您可以使用重载的.ToString()
方法来指定格式。
您还需要考虑的另一件事是FormatException
,请参见您已经使用Convert.ToInt32()
将值转换为整数,这里将不是一个很好的选择,因为它将抛出{{ 1}},当FormatException
的值为DBNull或为空时,建议您改用dr[1]
。看看下面的代码:
TryParse()
答案 1 :(得分:1)
使用PadLeft功能
ToString().PadLeft(4, '0');
或仅在ToString
函数中使用format参数,例如:
ToString("00000");
答案 2 :(得分:0)
int i = 2;
string s = i.ToString("00000");
//result will be 00002