PDA

View Full Version : مشکل در جلوگیری از ورود اطلاعات تکراری(فوری)



komeil64
دوشنبه 16 بهمن 1385, 23:55 عصر
سلام
من یه قسمت ثبت نام درست کردم و کدی نوشتم که از ورود اطلاعات تکراری جلوگیری کنه
خطایی نمی گیره
ولی چه تکراری باشه و چه نباشه اضافه می کنه و 4 تا فیلد خالی هم بعدش اضافه میکنه
البته فکر کنم کردم خیلی ضایعه ولی اگر لطف کنید کمک کنید



string FilePath1;
FilePath1 = MapPath("~/App_Data/db.mdb");
OleDbConnection odcon1 = new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + FilePath1);
odcon1.Open();
OleDbCommand olcom2 = new OleDbCommand("select uname,pass,name,email from tbluser", odcon1);
OleDbDataReader dr2 = olcom2.ExecuteReader(CommandBehavior.CloseConnecti on);
{
while(dr2.Read())
{
if (TextBox1.Text != dr2.GetString(1))
{
string FilePath2;
FilePath2 = MapPath("~/App_Data/db.mdb");
OleDbConnection odcon2 = new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + FilePath2);
odcon2.Open();

OleDbDataAdapter oled1 = new OleDbDataAdapter("select uname,pass,name,email from tbluser", odcon2);
OleDbCommand olcom1 = new OleDbCommand("insert into tbluser(uname,pass,name,email) values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "')", odcon2);
olcom1.ExecuteNonQuery();
Label1.Text = "اطلاعات شما در سایت ثبت شد در صورتی که قصد خرید دارید حتما باید لاگین نمایید";
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
TextBox5.Text = "";

odcon2.Close();
}
else
{
Label1.Text = "نام کاربری تکراری است نام جدیدی را وارد نمایید";
}
}dr2.Close();

odcon1.Close();}

خنده داره نه؟

Alireza_Salehi
سه شنبه 17 بهمن 1385, 06:56 صبح
پیشنهاد من اینه که Query اول رو به صورت زیر تغییر بده


"SELECt uname FROM tbluser WHERE uname="+TextBox1.Textاین طوری اگر این نام کاربری موجود باشه فقط یک رکورد در دیتا ریدر موجوده و با یک دستور شرط ساده میشه کار رو تموم کرد و به WHILE نیازی نیست!


if (dr2.Read())
{کاربر وجود دارد}
else
{عملیات Insert}