momimomi
یک شنبه 18 فروردین 1392, 00:24 صبح
با سلام
در جدول استعلامات برای هر شخص ممکن است چندین استعلام از ادارات مختلف ثبت شود که شاید شماره و تاریخ یکسان داشته باشند برای جلوگیری از بروز چنین مشکلی سه فیلد شماره استعلام، تاریخ استعلام، از ، به طور همزمان بررسی می شوند و در صورت تکراری بودن از ثبت آن جلوگیری به عمل می آید، شما دوستان گرامی نظر دهید که اشکال این کدها کجاست؟ ضمنا جدول مربوطه کلید اصلی ندارد(اجبارا).
ممنون
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 " +
"shestelam = @shestelam and taestelam = @taestelam and az = @az",con);
da.SelectCommand.Parameters.AddWithValue("@shestelam", txtsh.Text.Trim());
da.SelectCommand.Parameters.AddWithValue("@taestelam", faDatetaestelam.GetDateString().Trim());
da.SelectCommand.Parameters.AddWithValue("@az", cmbAz.Text.Trim());
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("استعلام با موفقیت ثبت گردید");
در جدول استعلامات برای هر شخص ممکن است چندین استعلام از ادارات مختلف ثبت شود که شاید شماره و تاریخ یکسان داشته باشند برای جلوگیری از بروز چنین مشکلی سه فیلد شماره استعلام، تاریخ استعلام، از ، به طور همزمان بررسی می شوند و در صورت تکراری بودن از ثبت آن جلوگیری به عمل می آید، شما دوستان گرامی نظر دهید که اشکال این کدها کجاست؟ ضمنا جدول مربوطه کلید اصلی ندارد(اجبارا).
ممنون
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 " +
"shestelam = @shestelam and taestelam = @taestelam and az = @az",con);
da.SelectCommand.Parameters.AddWithValue("@shestelam", txtsh.Text.Trim());
da.SelectCommand.Parameters.AddWithValue("@taestelam", faDatetaestelam.GetDateString().Trim());
da.SelectCommand.Parameters.AddWithValue("@az", cmbAz.Text.Trim());
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("استعلام با موفقیت ثبت گردید");