【发布时间】:2019-04-07 07:33:57
【问题描述】:
字符串总长度为 5 个字符。我有一个场景,ID开头:A0001,结尾:A9999,B0001到B9999
现在,
- 如果我的产品 (a) 将具有 A0001、A0002 等......
- 如果我的产品 (b) 将有 b0001、b0002 等......
如何创建这种格式?
我试过了:
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["voiceno"].ToString();
if (val == "0")
{
txtinvoiceno.Text = "00001";
}
else
{
a = Convert.ToInt32(dr["voiceno"].ToString());
a = a + 1;
txtinvoiceno.Text = a.ToString("00000");
}
}
}
我的桌子看起来像
CREATE TABLE [dbo].[voiceno](
[ID] [int] IDENTITY(1,1) NOT NULL,
[voiceno] [nvarchar](50) NULL)
【问题讨论】:
-
那么,您是否最多有 26 行,或者您会继续拥有 AA0001、AB0001 等吗?听起来您可以将行 nr 添加到 ascii (65) 中 A 的 int 中,然后将输出转换为 char
-
不,我没有最大的@Icepickle 你能解释一下如何做到这一点
-
您想在数据库中保存字母数字键,例如 A00001... 或者您只想显示 A00001 但实际上在数据库中它是 00001 ?如果是,那么用钥匙显示“A”或“B”的检查是什么。
-
但是如果你的第一个产品是 A 而你的第二个产品是 B,那么这意味着它会一直运行到 Z,这将是 26 行,这 26 行之后发生的事情可能会很有趣
-
您的代码中的某些内容似乎不太正确。您阅读表 voiceno 并获得 voiceno 的值,然后将这个值加 1 并显示它。这是一种查找表中存在的最大值并将其递增以插入新记录的方法吗?
标签: c# alphanumeric