PDA

View Full Version : سوال: ثبت نکردن داده های تکراری در دیتابیس



behruz1212
شنبه 03 فروردین 1392, 13:13 عصر
سلام دوستان من یک پروژه دارم که میخوام وقتی در یک تکس باکس که کد درس است رو وارد کنم اگه تکراری بود یک پیام تکراری بودن بده وگرنه اطلاعات رو ثبت کنه لطفا راهنماییم کنین :قلب:

bazardeh
شنبه 03 فروردین 1392, 13:25 عصر
دوست من

قبلش کد درس رو جستجو کن
و اگر کد درس ، منظور شما است کد درس باید کلید باشه و اگر کلید باشه خوده دیتابیس ارور میده

bazardeh
شنبه 03 فروردین 1392, 13:28 عصر
کد جستجو


SqlDataAdapter da = new SqlDataAdapter("select * from darsha where coddars like '" + textBox1.Text + "%'", connectinname);

behruz1212
شنبه 03 فروردین 1392, 14:00 عصر
DataSet ds1 = new DataSet();
ds1 = k.select("select * from course where coid like N" + txtid.Text + "", "course");
if (ds1.Tables[0].Rows.Count > 0)
{
b1 = true;
n1 = int.Parse(ds1.Tables[0].Rows[0]["coid"].ToString());
txtid.BackColor = Color.Red;
}
else
{
b1 = false;
n1 = 0;
txtid.BackColor = Color.White;


من این کدارو نوشتم ولی ارور میده کهNo value given for one or more required parameters.
البته کد درس(coid) هم در دیتابیسم کلیده
لطفا راهنماییم کنین خیلی مهمه برام:قلب:

veniz2008
شنبه 03 فروردین 1392, 17:19 عصر
کد جستجو


SqlDataAdapter da = new SqlDataAdapter("select * from darsha where coddars like '" + textBox1.Text + "%'", connectinname);

سلام.
وقتی دقیقا دنبال یک مورد خاص می گردیم بهتره از Like استفاده نشه. فرض کنید کدهای 1 ، 10 ، 11، 12، 13 ، 14، 15 و ... رو ذخیره کردید و کاربر مقدار 1 رو وارد میکنه، در اینحالت نتیجه select تمام اعدادی خواهد بود که با 1 شروع میشن در صورتیکه قصد ما فقط پیدا کردن عدد 1 بوده و دنبال 11 یا 12 و ... نبودیم.(این کار سرعت رو میاره پایین مخصوصا اگر داده ها تعدادشون زیاد باشه).


DataSet ds1 = new DataSet();
ds1 = k.select("select * from course where coid like N" + txtid.Text + "", "course");
if (ds1.Tables[0].Rows.Count > 0)
{
b1 = true;
n1 = int.Parse(ds1.Tables[0].Rows[0]["coid"].ToString());
txtid.BackColor = Color.Red;
}
else
{
b1 = false;
n1 = 0;
txtid.BackColor = Color.White;


من این کدارو نوشتم ولی ارور میده کهNo value given for one or more required parameters.
البته کد درس(coid) هم در دیتابیسم کلیده
لطفا راهنماییم کنین خیلی مهمه برام:قلب:
از روش پارامترها استفاده کنید تا کدهای sql شما امن تر باشن و قابلیت هک شدن رو نداشته باشن.

SqlConnection con = new SqlConnection("data source = (local);initial catalog = dastresy;integrated security = true");
SqlDataAdapter da = new SqlDataAdapter("select * from course where coid = @txtid", con);
da.SelectCommand.Parameters.AddWithValue("@txtid", txtid.Text);
DataTable dt = new DataTable();
da.Fill(dt);
if(dt.Rows.Count > 0)
{
MessageBox.Show("این کد درس قبلا ثبت شده است");
}
else
{
// دستور درج رو بنویسید
}