a = a + 00001我想念的是

时间:2019-04-02 10:32:35

标签: c# sql-server

您能帮我解决我的问题吗?我正在使用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)

3 个答案:

答案 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