3 回答
TA贡献1806条经验 获得超8个赞
尝试改变这个:String strgen = dt.Rows[0]["a"].ToString();
到String strgen = dt.Rows[0]["a"].ToString("D3");
这将确保您总是得到一个三位数字并用前导 0 填充。所以数字 1 是 001,10 是 010,100 是 100。
另外,不要忘记在这一行更改"LDLB00"
为"LDLB"
:
MySqlCommand comm = new MySqlCommand("SELECT * FROM tbl_user WHERE userid = '" + "LDLB00" + strgen + "'", conn);
希望这可以帮助!
TA贡献1810条经验 获得超4个赞
您可能会遇到 2 个或更多用户同时执行相同查询并以相同 id 结束的情况。两种可能的解决方案是让数据库通过使表自动增加主键来创建 id:
CREATE TABLE tbl_user (
`id` int NOT NULL AUTO_INCREMENT,
userid varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
然后,用您的字符串作为 id 值的前缀。
string sql = "SELECT `id` AS `a` FROM tbl_user WHERE (some condition)"
...
string userid = dt.Rows[0]["a"].ToString("LDLB000")
这会将整数格式化为始终具有 LDLB 和 0 到 3 个前导零。例如,如果 a = 33,则 strgen = "LDLB033"。并且,如果 a = 5000,则 strgen = "LDLB5000"。
另一种解决方案是使用 Guid 创建唯一标识符:
string userid = Guid.NewGuid().ToString("N");
- 3 回答
- 0 关注
- 210 浏览
添加回答
举报