PDA

View Full Version : تكراري بودن ورودي



behroz1387
جمعه 27 آذر 1388, 13:39 عصر
دوستان عزيز با سلام
من داخل يكي از فرمهايم يك تكست باكس دارم كه مي خواهم اطلاعات داخل آن در ديتا بيس ذخيره كنم حال مي خواهم قبل از ذخيره شدن چك شود كه اطلاعات كه مي خواهد ذخيره شود تكراري نباشد اگه تكراري نبود آنرا ذخيره و در غير اينصورت پيغام عدم ذخيره به علت تكراري بودن را بدهد در ضمن نمي خواهم از ايندكس ديتا بيس استفاده كنم ممنون از توجهتان

slashslash2009
جمعه 27 آذر 1388, 18:37 عصر
از یه دستور select استفاده کن اگر چیزی پیدا نشد ادامه ماجرا یعنی مثلا insert


if (datatable.Rows.Count == 0)

اگر تعداد سطرها مساوی 0 بود ادامه داستان مثلا insert

AliRezaPro
جمعه 27 آذر 1388, 22:19 عصر
قبل از اینسرت شما محتویات textbox را یگیرید و و در دیتابیس سلکت بزنید و اگر مقدار برگشتی نداشت یعنی وجود ندارد و باید اینسرت شود

csharpprogramer88
جمعه 27 آذر 1388, 22:27 عصر
از دستور exists استفاده كن من شكل بكارگيري اونو دقيق نميدونم ولي به كارت مياد اگر وجود داشت كه پيغام بدهد و اگر وجود نداشت درج كند البته از دستور insert هم مي توني

oracler
شنبه 05 دی 1388, 02:40 صبح
دوستان عزيز با سلام
من داخل يكي از فرمهايم يك تكست باكس دارم كه مي خواهم اطلاعات داخل آن در ديتا بيس ذخيره كنم حال مي خواهم قبل از ذخيره شدن چك شود كه اطلاعات كه مي خواهد ذخيره شود تكراري نباشد اگه تكراري نبود آنرا ذخيره و در غير اينصورت پيغام عدم ذخيره به علت تكراري بودن را بدهد در ضمن نمي خواهم از ايندكس ديتا بيس استفاده كنم ممنون از توجهتان

سلام، روش دوستمون slashslash2009 درسته ولی یه روش دیگه هم وجود داره:

SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\YourDbName.mdf;Integrated Security=True");
SqlCommand cm;
private void button1_Click(object sender, EventArgs e)
{
cm = new SqlCommand("IF EXISTS(SELECT * FROM yourTableName WHERE id=@id) SELECT 1 ELSE SELECT 0", con);
cm.Parameters.AddWithValue("@id",textBox1.Text);

con.Open();
bool b = Convert.ToBoolean(cm.ExecuteScalar());
con.Close();

if (b)
MessageBox.Show("This number now exists! try again");
else
MessageBox.Show("Ok, you can add this record.");
}
Tested by VS2005

asefy2008
شنبه 05 دی 1388, 11:21 صبح
http://barnamenevis.org/forum/showthread.php?t=196565