C# 使用int64值格式化字符串

C# 使用int64值格式化字符串,c#,asp.net,string,web-services,format,C#,Asp.net,String,Web Services,Format,我有一个web服务,其中培训编号是根据我的数据库分配的 有一条线 日期+1此行在日期中添加1 如27012017将变成270120171 然后我将其转换为int64 newid = Convert.ToInt64(dates); 但现在我想在这里面添加培训师id 所以我用这个更新了我的线路 dates ="00"+trainerid +"-"+ dates + "1"; newid = Convert.ToInt64(dates); 错误是输入字符串格式不正确 我知道这是因为添加了+“-”+

我有一个web服务,其中培训编号是根据我的数据库分配的

有一条线

日期+1此行在日期中添加1

27012017
将变成
270120171

然后我将其转换为
int64

newid = Convert.ToInt64(dates);
但现在我想在这里面添加培训师id

所以我用这个更新了我的线路

dates ="00"+trainerid +"-"+ dates + "1";
newid = Convert.ToInt64(dates);
错误是输入字符串格式不正确

我知道这是因为添加了
+“-”+

但我只想以这种格式存储数据

我的整个部分看起来像

DateTime dt = DateTime.Now;
string dates = dt.ToString();
dates = dates.Replace("-", "");
dates = dates.Substring(0, 8);
        SqlCommand cmdbill = new SqlCommand("select top 1 * from listmybill where bill_id like @trid order by bill_id desc", con);
        con.Open();
        cmdbill.Parameters.AddWithValue("@trid", "%" + dates + "%");
        SqlDataReader dr = cmdbill.ExecuteReader();
        while (dr.Read())
        {
            value = dr["bill_id"].ToString();
        }

        con.Close();
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter(cmdbill);
        DataTable dat = new DataTable();
        da.Fill(dat);
        if (dat.Rows.Count > 0)
        {
            newid = Convert.ToInt64(value);
            newid = newid + 1;
        }
        else
        {
            dates ="00"+trainerid +"-"+ dates + "1";
            newid = Convert.ToInt64(dates);
        }
        con.Close();
我该怎么办

我想输入数据,如
001-270120171
如果我把64转换成字符串

在表中找到行时可能会出现问题

if (dat.Rows.Count > 0) 
{
    newid = Convert.ToInt64(value);
    newid = newid + 1; 
}
我现在需要做什么


我想将其存储到我的数据库中

我几乎不认为您会对这个训练数字字符串进行数学计算。我建议您使用
alter
语句将数据库中的
int
转换为
varchar
。然后,您将能够以您喜欢的格式存储培训编号。

您可以将新id更改为字符串并执行以下操作

if (dat.Rows.Count > 0) 
{
    newid = Convert.ToString(Convert.ToInt64(value)+1);
}
 else
{
   newid="00"+trainerid +"-"+ dates + "1";

}

对于字符串
“001-270120171”
您希望整数实际是什么?因为该字符串本身不是整数。newid=Convert.ToString(Convert.ToInt64(value)+1);无法将字符串隐式转换为long@MumbaiWadala当前位置不清楚您在这里实际想做什么。不要只是随机复制/粘贴代码并重复错误消息。详细说明这个问题。您正在尝试将非整数的字符串转换为整数。为什么?你期望结果是什么?使用该值做什么?将变量类型newid更改为string。我猜您是在将其声明为整数或双精度。