PDA

View Full Version : سوال: گرفتن اطلاعات از تکست باکس و عدم درج رکورد تکراری در جدولی که کلید اصلی ندارد



momimomi
چهارشنبه 26 مهر 1391, 06:56 صبح
با سلام
یه فرم دارم که چند تا تکست باکس داره و میخوام ازطریق یه دکمه اطلاعات تکست باکس ها رو به جدول بانک اطلاعاتی اضافه کنه و میخوام اگر 2 الی 3 تا از این تکست باکس ها به طور همزمان اطلاعاتی داشت که قبلا در جدول بود برنامه پیغام بده رکورد تکراری است و بین دو حالت (قبول) یا (انصراف) کاربر را مخیر کند.
لطفا مرا راهنمایی کنید.
با تشکر

حسین شهریاری
چهارشنبه 26 مهر 1391, 07:54 صبح
قبل از ذخیره کردن یه کوئری بزن ببین چنین رکوردی هست یا نه؟
از طریق Count مربوط به خصوصیت Rows میتونی چک کنی که:

if (ds.rows.count==0)
بیاد و هر کاری که شما میخای انجام بده.

momimomi
جمعه 16 فروردین 1392, 06:31 صبح
قبل از ذخیره کردن یه کوئری بزن ببین چنین رکوردی هست یا نه؟
از طریق Count مربوط به خصوصیت Rows میتونی چک کنی که:

if (ds.rows.count==0)
بیاد و هر کاری که شما میخای انجام بده.

من این کدها رو نوشتم ولی همچنان اطلاعات تکراری درج می کنه
به نظر شما اشکال کار کجاست؟

private void btnSabtEstelam_Click(object sender, EventArgs e)
{
//ثبت استعلام غیر تکراری
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"provider = microsoft.jet.oledb.4.0;" + @"data source =TS.mdb";
OleDbDataAdapter da = new OleDbDataAdapter("select * from estelam where " +
"code = @code and shestelam = @shestelam and taestelam = @taestelam and subject = @subject" +
" and az = @az and details = @details and tavosool = @tavosool and shsabt = @shsabt" +
" and tasabt = @tasabt", con);
da.SelectCommand.Parameters.AddWithValue("@code", txtCode.Text);
da.SelectCommand.Parameters.AddWithValue("@shestelam", txtsh.Text);
da.SelectCommand.Parameters.AddWithValue("@taestelam", faDatetaestelam.GetDateString());
da.SelectCommand.Parameters.AddWithValue("@subject", cmbSubject.Text);
da.SelectCommand.Parameters.AddWithValue("@az", cmbAz.Text);
da.SelectCommand.Parameters.AddWithValue("@details", cmbDetail.Text);
da.SelectCommand.Parameters.AddWithValue("@tavosool", faDatetavosool.GetDateString());
da.SelectCommand.Parameters.AddWithValue("@shsabt", txtShSabt.Text);
da.SelectCommand.Parameters.AddWithValue("@tasabt", faDatetasabt.GetDateString());
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
MessageBox.Show("این استعلام قبلا ثبت شده است");
}
else
{
OleDbCommand cmd = new OleDbCommand("INSERT INTO estelam (code,shestelam," +
"taestelam,az,subject,details,tavosool,shsabt,tasab t)" +
"values(@code,@shestelam,@taestelam,@az,@subject,@d etails,@tavossol,@shsabt,@tasabt)", con);
cmd.Parameters.AddWithValue("@code", txtCode.Text);
cmd.Parameters.AddWithValue("@shestelam", txtsh.Text);
cmd.Parameters.AddWithValue("@taestelam", faDatetaestelam.GetDateString());
cmd.Parameters.AddWithValue("@subject", cmbSubject.Text);
cmd.Parameters.AddWithValue("@az", cmbAz.Text);
cmd.Parameters.AddWithValue("@details", cmbDetail.Text);
cmd.Parameters.AddWithValue("@tavosool", faDatetavosool.GetDateString());
cmd.Parameters.AddWithValue("@shsabt", txtShSabt.Text);
cmd.Parameters.AddWithValue("@tasabt", faDatetasabt.GetDateString());
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("استعلام با موفقیت ثبت گردید");
[/QUOTE]