سلام و خسته نباشید .
در جدولم ( Patients ) یک ستون دارم به اسم AGE . از اسمش معلومه که یعنی سن . بیمارانی که پذیرش میشن در نرم افزار من یک سن بهشون تخصیص داده .
حالا من می خواهم با یک حلقه For لیست تمام بیماران رو داشته باشم و اگه سنشون بیشتر از مثلا 50 سال بود ، یک دستور INSERT اجرا بشه .
cmd.Connection = cnn;
cnn.Open();
cmd.CommandText = "Select COUNT(*) AS cnt From patients WHERE sex = 'مرد' AND reg_tarikh_shamsi between '" + uc1.VDate + "' AND '" + uc2.VDate + "'";
cmd.Parameters.Clear();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
string cnt = Convert.ToString(ds.Tables[0].Rows[0]["cnt"]);
int countz = Convert.ToInt32(cnt);
cnn.Close();
////////
cmd.Connection = cnn;
cnn.Open();
cmd.CommandText = "Select id,age From patients WHERE sex = 'مرد' AND reg_tarikh_shamsi between '" + uc1.VDate + "' AND '" + uc2.VDate + "'";
cmd.Parameters.Clear();
SqlDataAdapter da22 = new SqlDataAdapter(cmd);
DataSet ds22 = new DataSet();
da22.Fill(ds22);
cnn.Close();
del_navar();
try
{
for (int j = 0; j < countz; j++)
{
PID = Convert.ToString(ds22.Tables[0].Rows[j]["id"]);
int age = Convert.ToInt32(Convert.ToString(ds22.Tables[0].Rows[j]["age"]));
if (age == 40 || age > 40)
{
cmd.Connection = cnn;
cnn.Open();
cmd.CommandText = "Insert INTO other_usage (patientid,other_id,numberz) VALUES (@patientid,@other_id,@numberz)";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@patientid", PID);
cmd.Parameters.AddWithValue("@other_id", 3);
cmd.Parameters.AddWithValue("@numberz", 1);
cmd.ExecuteNonQuery();
cnn.Close();
}
}
MessageBox.Show("اضافه شد");
}
catch
{
}
این تیکه کد من هست . اما متاسفانه درست کار نمی کنه و رکورد هایی رو هم دارم که سنشون کمتر از 50 هست ( که در تیکه برنامه بالا قید کردم ) بازم دستور INSERT براشون انجام شده
ممنون میشم کمک کنید