Как повторно сгенерировать случайную строку, если сгенерированная строка уже существует в базе данных
Я думаю, что у меня есть простая ситуация, которую я, кажется, не могу решить, и я надеюсь, что кто-то прольет некоторый свет на это:
в основном у меня есть метод, который генерирует случайное число, подобное этому:
п
Public static string Code() { var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var c= new char[6]; var random = new Random(); for (int i = 0; i < c.Length; i++) { c[i] = characters[random.Next(characters.Length)]; } var code = new String(c); return code; }
У меня есть еще один метод, который проверяет, существует ли сгенерированный код в приведенном выше методе уже в базе данных. Если код существует, то повторно сгенерируйте другой код .
public void SetCode() { string _code = Code(); using(var db = new Database()) { var p = db.Codes.Where(pc => pc.Code.Equals(Code)); if (p.Any()) { // this is where i'm stuck, if the code exist i'll do i send it back to generate another code? } //if code doesn't exist in the db save it.... } }
Как я могу идти вперед и достичь этого?
Спасибо
Что я уже пробовал:
Посмотрел на сделать, в то время как петли и
if (p.Any()) { // this is where i'm stuck, if the code exist i'll do i send it back to generate another code? } //if code doesn't exist in the db save it.... } }
Thanks7872
Какая база данных существует?
BillWoodruff
Вы знаете, как писать в базу данных ? Как изменить существующее значение в базе данных ? Если вы не знаете, как с вашей текущей базой данных создавать, читать, обновлять и удалять (CRUD), вы не добьетесь прогресса.
Вам нужно просмотреть документацию по вашей базе данных.
Richard Deeming
Либо а пока[^] или А делай...пока[^] сделает свое дело. В чем проблема?
string code; using (var db = new Database()) { do { code = Code(); } while (db.Codes.Any(pc => pc.Code == code)) }
string code = Code(); using (var db = new Database()) { while (db.Codes.Any(pc => pc.Code == code)) { code = Code(); } }
BillWoodruff
Я бы проголосовал за это № 5, если бы это было опубликовано в качестве решения.