PDA

View Full Version : سوال: بررسی کد تولید کد Random



Masoudse7en
شنبه 11 آبان 1392, 13:36 عصر
سلام دوستان امکان داره کد زیر شماره تکراری تولید کنه ؟

Random random =new Random();
for (int i = 0; i < 100; i++)
txtpigiri.Text = (random.Next(100000, 255465646)).ToString();

چون برای شماره پیگیری نامه میخوام !

esafb52
شنبه 11 آبان 1392, 14:25 عصر
بله موارد ایجاد شده رو بریز تو یه ارایه و چک کن تکراری نباشه

Apache66
شنبه 11 آبان 1392, 14:52 عصر
من از این روش استفاده میکنم

static List<int> list1 = new List<int>();

public static bool check(int sel)
{
foreach (int temp in list1)
if (temp == sel)
{
return false;
}
return true;

}


private void button1_Click(object sender, EventArgs e)
{

Random r = new Random();

for (int i = 0; i < 10; i++)
{



int temp = r.Next(1, 20);
if (check(temp) == false) continue;
else list1.Add(temp);
}
foreach (int i in list1)
listView1.Items.Add(i.ToString());

}

Masoudse7en
شنبه 11 آبان 1392, 19:35 عصر
معادل این کد در سی شارپ را موجود دارید ؟

On Error Resume Next
Dim dr As OleDb.OleDbDataReader
con.Open()
Dim cmd As New OleDb.OleDbCommand
Dim strsql As String
strsql = " SELECT max ( id ) FROM register "
cmd = New OleDb.OleDbCommand(strsql, con)
dr = cmd.ExecuteReader
dr.Read()

If IsDBNull(dr(0)) = False Then
radif = dr(0)
radif += 1
End If

con.Close()
' MaskedTextBox1.Text = GetOrder()
Return radif

کارش اینه که اخرین رکورد را چک میکنه و بعد یکی بهش اضافه میکنه !

Nima NT
شنبه 11 آبان 1392, 23:20 عصر
برای اینکه مطمئن باشید اعداد مشابه نخواهند بود میتونید از BigInt تو کلاس رمزنگاری RSA استفاده کنید ( معادلش رو تو نت جستجو کنید چون دقیقا" نمیدونم تو #C چطوری نوشته میشه ولی مطمئن هستم که فریم ورک دات نت داره)

esafb52
شنبه 11 آبان 1392, 23:37 عصر
با سلام من یه چیزی نوشتم گفتم بذار شاید بدردت خورد
112486

mhsmity
یک شنبه 12 آبان 1392, 00:55 صبح
سلام دوستان امکان داره کد زیر شماره تکراری تولید کنه ؟

Random random =new Random();
for (int i = 0; i < 100; i++)
txtpigiri.Text = (random.Next(100000, 255465646)).ToString();

چون برای شماره پیگیری نامه میخوام !
سلام چرا این شماره پیگیری شماحساب و کتاب نداره ؟؟؟؟
مثلا با یک نگاه آدم متوجه بشه که تاریخ و ساعت صدور این کد پیگیری کی بوده

من بعضی شرکت هارو دیدم که شماره فاکتور هاشون رو تاریخ خریدشون (و یکسری جزئیات دیگر) می زنن خوب.
می دونم به خاطر حالت کارشون.
ولی فکر می کنم
یعنی به نظر می رسه که این طوری بهتره.

البته وقتی سایت سنجش شرکت می کنه کد پیگیری بهت می ده آیا این کد پیگیری مثل کد شماست؟، یا نه ؟، طبق فرمول خاصی ایجاد می شه ؟
مثلا اگه شما از فرمول زیر استفاده کنی به هیچ عنوان تکراری که نداری و طبق فرمول صادر شده

سال و ماه و روز و ساعت و دقیقه و ثانیه و شماره رکورد ثبت شده

من کد شماره با یک حلقه فر 1000 تایی امتحان کردم تکرای نداشت.

danialafshari
یک شنبه 12 آبان 1392, 09:16 صبح
سلام
بهتره کد ها از طریق بانک چک بشن که اگه تکراری بود به سراغ تولید کد بعدی بره

Masoudse7en
یک شنبه 12 آبان 1392, 17:33 عصر
سلام
بهتره کد ها از طریق بانک چک بشن که اگه تکراری بود به سراغ تولید کد بعدی بره

دقیقا منم دنبال همین بوودم و فکر خودمم به همین صورت بود کد VB.NET گذاشتم گفتم شاید کسی معادل سی شارپشو داشته باشه !

Masoudse7en
دوشنبه 13 آبان 1392, 12:54 عصر
کسی میتونه تو این زمینه کمک کنه !

esafb52
دوشنبه 13 آبان 1392, 13:27 عصر
دوست عزیز من یه همچنین چیزی نوشتم تست کن

public int radifnumber()
{
SqlConnection connection = new SqlConnection("stringcon");
int radif = 0;
SqlDataReader reader;
string strsql = " SELECT max ( id ) FROM register ";
SqlCommand command = new SqlCommand(strsql,connection);
command.Connection.Open();
reader = command.ExecuteReader();
while (reader.Read())
{
if (Convert.ToInt32(reader[0].ToString()) == 0)
{
radif = 1;
}
radif= Convert.ToInt32(reader[0].ToString());
radif++;
}
command.Connection.Close();
return radif;
}