C# 使用int64值格式化字符串
我有一个web服务,其中培训编号是根据我的数据库分配的 有一条线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); 错误是输入字符串格式不正确 我知道这是因为添加了+“-”+
日期+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。我猜您是在将其声明为整数或双精度。