سلام دوستان
مکن با کد زیر پفتم که اگر کاربر کد ملی زا اشتباه وارد کرد خطا بده
این قطعه کد کار می کنه اما فقط یک بار یعنی یک بار میگه که کد وارد شده اشتباهه و بعد از اون دیپه هر چیو قبول می کنه
به نظر شما کجای کدم مشکل داره ؟
Printable View
سلام دوستان
مکن با کد زیر پفتم که اگر کاربر کد ملی زا اشتباه وارد کرد خطا بده
این قطعه کد کار می کنه اما فقط یک بار یعنی یک بار میگه که کد وارد شده اشتباهه و بعد از اون دیپه هر چیو قبول می کنه
به نظر شما کجای کدم مشکل داره ؟
کدوم کد؟ اطفا کد رو بذارید
private void TXT_NationalID_TextChanged(object sender, EventArgs e)
{
if (TXT_NationalID.TextLength == 10)
{
for (int i = 0; i < dtshoraka.Rows.Count; i++)
{
if (TXT_NationalID.Text == dtshoraka.Rows[i]["NationalID"].ToString())
{
MessageBox.Show("کد ملی تکراری است");
validatenationalid = false;
}
else if (TXT_NationalID.Text != dtshoraka.Rows[i]["NationalID"].ToString())
{
validatenationalid = true;
}
}
char[] chArray = this.TXT_NationalID.Text.ToCharArray();
int[] numArray = new int[chArray.Length];
for (int i = 0; i < chArray.Length; i++)
{
numArray[i] = (int)char.GetNumericValue(chArray[i]);
}
int num2 = numArray[9];
switch (this.TXT_NationalID.Text)
{
case "0000000000":
case "1111111111":
case "22222222222":
case "33333333333":
case "4444444444":
case "5555555555":
case "6666666666":
case "7777777777":
case "8888888888":
case "9999999999":
MessageBox.Show("کد ملی وارد شده صحیح نمی باشد");
break;
}
int num3 = ((((((((numArray[0] * 10) + (numArray[1] * 9)) + (numArray[2] * 8)) + (numArray[3] * 7)) + (numArray[4] * 6)) + (numArray[5] * 5)) + (numArray[6] * 4)) + (numArray[7] * 3)) + (numArray[8] * 2);
int num4 = num3 - ((num3 / 11) * 11);
if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || ((num4 > 1) && (num2 == Math.Abs((int)(num4 - 11)))))
{
validatenationalid = true;
}
else
{
MessageBox.Show("کد ملی وارد شده صحیح نمی باشد");
validatenationalid = false;
}
}
}
نبود ؟
کسی نیست جواب منو هم بده ؟؟؟؟؟؟؟؟
شما یه Break point بذار اول void بعد اجرا کن با کلید f11 خط به خط اجرا کن ببین کجا از void خارج می شه
اصلا این رویدادی که شما استفاده کردی برای این کار صحیح نیست. شما یه متد بنویس که یک مقدار bool برگردونه و کد ملی رو به عنوان پارامتر بگیره، بعد اونو هر جایی خواستی صدا بزن:
public bool checkCodeMeli(string strCodeMeli){//Your code}
توی رویداد Validate بذار که وقتی طرف خواست بیاد بیرون از تکست باکس چک بشه