PDA

View Full Version : برسی مقدار موجود در دیتابیس



vB.N3T
شنبه 19 اسفند 1391, 16:46 عصر
سلام

دوستان این برنامه من یه فیلم رو میگیره و تو دیتا بیس ثبت میکنه
مثلا بار اول ایدی فیلم رو دادیم 1
بار دوم هم بدیم 1 ثبت میکنه
میخوام یه کاری کنم اگر ایدی تکراری بود اطلاعات ثبت نشه
ممنون :قلب:



private void button1_Click(object sender, EventArgs e)
{
{
SqlConnection con1 = new SqlConnection();
con1.ConnectionString = "server=localhost;database=bahi;integrated security=true";
con1.Open();
SqlCommand com1 = new SqlCommand();
com1.Connection = con1;




com1.Parameters.AddWithValue("@id", textBox1.Text);
com1.Parameters.AddWithValue("@name", textBox2.Text);
com1.Parameters.AddWithValue("@keshvar", textBox3.Text);
com1.Parameters.AddWithValue("@sabk", textBox4.Text);
com1.Parameters.AddWithValue("@sal", maskedTextBox1.TextMaskFormat);
com1.Parameters.AddWithValue("@tedad", textBox6.Text);
com1.Parameters.AddWithValue("@gheymat", textBox7.Text);

com1.CommandText = "insert into tbl_sabt_film(id,name,keshvar,sabk,sal,tedad,gheym at) values(@id,@name,@keshvar,@sabk,@sal,@tedad,@gheym at)";

MessageBox.Show("ثبت اطلاعات با موفقیت ", "ثبت اطلاعات ");

textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
maskedTextBox1.Text = "";
textBox6.Text = "";
textBox7.Text = "";
com1.ExecuteNonQuery();

}
}

veniz2008
شنبه 19 اسفند 1391, 17:11 عصر
سلام. دو راه داری. یا id رو identity کن تا خودش خودکار اضافه بشه و دیگه نیازی به چک کردن شما نباشه. یا قبل از درج داده یه select با شرط id وارد شده در textbox بزن و نتیجه رو داخل یه دیتاتیبل بریز و سطرهای دیتاتیبل رو چک کن. اگر بیشتر از صفر بود یعنی قبلا وارد شده . در غیر اینصورت رکورد جدید رو ثبت کن.

vB.N3T
شنبه 19 اسفند 1391, 17:40 عصر
میشه یه کاریش بکنید من تا اینجاشو تونستم بنویسم ممنون میشم

veniz2008
شنبه 19 اسفند 1391, 17:54 عصر
کار راحتیه دوست عزیز:

SqlConnection con1 = new SqlConnection("server=localhost;database=bahi;integrated security=true");
SqlDataAdapter da = new SqlDataAdapter("select * from tbl_sabt_film where id = @id", con1);
da.SelectCommand.Parameters.AddWithValue("@id", textBox1.Text);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
MessageBox.Show("این مشخصه قبلا ثبت شده است");
textBox1.Focus();
}
else
{
SqlCommand com1 = new SqlCommand("insert into tbl_sabt_film(id,name,keshvar,sabk,sal,tedad,gheym at) values(@id,@name,@keshvar,@sabk,@sal,@tedad,@gheym at",con1);
com1.Parameters.AddWithValue("@id", textBox1.Text);
com1.Parameters.AddWithValue("@name", textBox2.Text);
com1.Parameters.AddWithValue("@keshvar", textBox3.Text);
com1.Parameters.AddWithValue("@sabk", textBox4.Text);
com1.Parameters.AddWithValue("@sal", maskedTextBox1.TextMaskFormat);
com1.Parameters.AddWithValue("@tedad", textBox6.Text);
com1.Parameters.AddWithValue("@gheymat", textBox7.Text);
con1.Open();
com1.ExecuteNonQuery();
con1.Close();
MessageBox.Show("اطلاعات با موفقیت ثبت گردید");
}
موفق باشید.

vB.N3T
یک شنبه 20 اسفند 1391, 02:35 صبح
ممنون در صورت تکرای بودن میگه تکراری است
اما اطلاعات تکراری که نباشه تو جدول درج نمیکنه وو این خطا رو میده

Incorrect syntax near '@gheymat'.

فیلد قیمت هم از نوع numeric(18, 0) هست
اگه کدا قیمت رو هم پاک کنم همین خطا رو برای

com1.Parameters.AddWithValue("@tedad", textBox6.Text);

میده


ممنون مبشم کمک کنید

veniz2008
یک شنبه 20 اسفند 1391, 08:46 صبح
ممنون در صورت تکرای بودن میگه تکراری است
اما اطلاعات تکراری که نباشه تو جدول درج نمیکنه وو این خطا رو میده

Incorrect syntax near '@gheymat'.

فیلد قیمت هم از نوع numeric(18, 0) هست
اگه کدا قیمت رو هم پاک کنم همین خطا رو برای

com1.Parameters.AddWithValue("@tedad", textBox6.Text);

میده


ممنون مبشم کمک کنید
مشکل از دستور insert هست که پرانتز values به موقع بسته نشده.
یعنی :

SqlCommand com1 = new SqlCommand("insert into tbl_sabt_film(id,name,keshvar,sabk,sal,tedad,gheym at) values(@id,@name,@keshvar,@sabk,@sal,@tedad,@gheym at",con1);
رو به :

SqlCommand com1 = new SqlCommand("insert into tbl_sabt_film(id,name,keshvar,sabk,sal,tedad,gheym at) values(@id,@name,@keshvar,@sabk,@sal,@tedad,@gheym at)", con1);
تبدیل کنید.
بعد از اینکه تمام مقادیر values وارد شدند باید پرانتز مربوطه بسته بشه که رعایت نشده بود.
موفق باشید.