PDA

View Full Version : سوال: درخواست ادامه این کد ؟



salehvasaleh
دوشنبه 03 بهمن 1390, 15:28 عصر
دوستان من در یک فرمی که دارم کاربر می بایست در text box 1 یک عدد و در text box2 یک کلمه رو وارد کنه کدهاش رو هم در زیر گذاشتم: منتها مشکلم اینه که می خوام اگه کاربر کدی رو وارد کرد که قبلا وارد شده بود پیغام بده و بگه این کد قبلا وارد شده و اجازه نده کد تکراری وارد دیتابیس بسه توی کد این قسمتش موندم با توجه به کدهای زیر ممنون می شم کمکم کنید بگید که باید چه تغییری در کدها اعمال کنم. ممنون



try
{

string str;
str = "Data Source=.;Initial Catalog=ghalam;Integrated Security=True";
SqlConnection con = new SqlConnection(str);
con.Open();
SqlCommand com = new SqlCommand("insert into onvanedoros(codedars,onvandars)values(@codedars,@o nvandars)", con);
com.Parameters.AddWithValue("@codedars", textBox1.Text);
com.Parameters.AddWithValue("@onvandars", textBox2.Text);
com.ExecuteNonQuery();
con.Close();
MessageBox.Show(" ");
textBox1.Text = string.Empty;
textBox2.Text = string.Empty;
textBox1.Focus();
}
catch
{
MessageBox.Show(" ");
textBox1.Text = string.Empty;
textBox2.Text = string.Empty;
}

gilas1368
دوشنبه 03 بهمن 1390, 15:37 عصر
شما اول با یه Select نام کاربری ای رو که کاربر بیرون بکش ببین وجود داره یا نه؟
اگه وجود داشت دوباره با یه Select دیگه پسوردی رو که کاربر وارد می کنه داخل دیتابیس جستجو کن اگه وجود داشت عمل مورد نظر انجام بشه
در غیر اینصورت پیام مناسب چاپ بشه

Hybrid
دوشنبه 03 بهمن 1390, 15:40 عصر
سلام دوست عزیز امیدوارم حالت خوب باشه من کدش رو به زبان وی بی براتون قرار میدم ولی راحت میتونین به زبان سی شارپ برگردان کنین :


cmd.CommandText = "Select Count(*) from onvanedoros Where codedars =@CodeDars"
cmd.Parameters.AddWithValue("@CodeDars", Trim(textbox1.text))
Dim i As Byte = cmd.ExecuteScalar()
If i > 0 Then
MessageBox.Show("تکراری است", "Another!")
Else
'کد مربوط به اضافه کردن
End If

موفق باشید./

salehvasaleh
دوشنبه 03 بهمن 1390, 15:51 عصر
شما اول با یه Select نام کاربری ای رو که کاربر بیرون بکش ببین وجود داره یا نه؟
اگه وجود داشت دوباره با یه Select دیگه پسوردی رو که کاربر وارد می کنه داخل دیتابیس جستجو کن اگه وجود داشت عمل مورد نظر انجام بشه
در غیر اینصورت پیام مناسب چاپ بشه
دوست عزیز ممنون از توضیحت ولی فکر کنم شما منظورم رو اشتباه متوجه شدید بحث نام کاربری نیست فقط خواستم داده های وارد شده در تکست باکس یک تکراری نبود که با راهنمایی دوستمون در پایین درست شد.ممنون

salehvasaleh
دوشنبه 03 بهمن 1390, 15:52 عصر
سلام دوست عزیز امیدوارم حالت خوب باشه من کدش رو به زبان وی بی براتون قرار میدم ولی راحت میتونین به زبان سی شارپ برگردان کنین :


cmd.CommandText = "Select Count(*) from onvanedoros Where codedars =@CodeDars"
cmd.Parameters.AddWithValue("@CodeDars", Trim(textbox1.text))
Dim i As Byte = cmd.ExecuteScalar()
If i > 0 Then
MessageBox.Show("تکراری است", "Another!")
Else
'کد مربوط به اضافه کردن
End If

موفق باشید./
سلام
ممنون از توضیحتون.. کارم راه افتاد خیلی خیلی ممنونم کدی که گفتید رو به این فرم نوشتم و جواب داد:



int k;
string strr;
strr = "Data Source=.;Initial Catalog=ghalam;Integrated Security=True";
SqlConnection conn = new SqlConnection(strr);
conn.Open();
SqlCommand comm = new SqlCommand("select count(*) from onvanedoros where codedars=@codedars", conn);
comm.Parameters.AddWithValue("@codedars", textBox1.Text.Trim());
//k = comm.ExecuteNonQuery();
k = (int)comm.ExecuteScalar();
if (k > 0)
{
MessageBox.Show("درسی با این کد قبلا وارد شده است لطفا کد جدیدی را وارد نمایید");
textBox1.Focus();
return;
}

h-rafiee
دوشنبه 03 بهمن 1390, 18:21 عصر
چرا دور خودتون می پیچونین؟!
این دستور با یک خط جواب میده کافیه کلید رویه کد درس باشه
و با استفاده از دستورات try و catch برنامه تون رو بنویسید

try{
دستورات بانک
}
catch (SqlException)
{
پیام خطای وجود اطلاعات با این کد
}