格式字符串,带有int64值

时间:2017-01-27 12:38:18

标签: c# asp.net string web-services format

我有一个网络服务,根据我的数据库分配培训号码

有一行

dates + "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这样的数据 如果我将toInt64转换为字符串,

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

if (dat.Rows.Count > 0) 
{
    newid = Convert.ToInt64(value);
    newid = newid + 1; 
}

我现在需要做什么?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

}