hobab1987
پنج شنبه 01 مهر 1389, 22:25 عصر
اين كد مربوطه جستجوي هر بخش مي باشد:
متأسفانه تعداد فيلدها زياده و براي جستجو دچار مشكل شدم.
از طرفي تعداد بخش ها(جدولها) ابتدا بايد انتخاب بشه براي جستجو .
و چيزي كه هم براي بررسي تكست باكس پر بين فيلدها OR به كار بردم كه البته اين كد خلاصه شده وگرنه از اين وحشت ناكتره!
try
{
SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=Xadamat;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
if (comboBox1.Text == "انتخاب شود")
{
MessageBox.Show("لطفاً بخش مورد نظر را انتخاب كنيد", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
switch (comboBox1.Text)
{
case "اطلاعات وام":
cmd.CommandText = "SELECT اشخـــاص.ID,اشخـــاص.Dossier_Num, شخـــاص.Lname,اشخـــاص.Fname,اش ـــاص.Identity_Num,اشخـــاص.Father, شخـــاص.Status,اشخـــاص.Recruitmen t_Date,اشخـــاص.Pensioner_Date,اشخــ اص.Description,وام.Loan_Type,وام.Loan_Cos t,وام.Division_Cost,وام.Division_Num,وام. Request_Date,وام.Done_Date FROM اشخـــاص INNER JOIN وام ON ((اشخـــاص.ID=وام.ID_Person) AND (اشخـــاص.ID=@A OR (وام.RQdate BETWEEN @J AND @K)))";
break;
case "اطلاعات ضيافت":
if (radioButton1.Checked == true)
cmd.CommandText = "SELECT افرادضيافت.ID_Repast,اشخـــاص.ID ,اشخـــاص.Dossier_Num,اشخـــاص.Lna me,اشخـــاص.Fname,اشخـــاص.Identit y_Num,اشخـــاص.Father,اشخـــاص.Sta tus,اشخـــاص.Recruitment_Date,اشخـــ اص.Pensioner_Date,اشخـــاص.Description FROM اشخـــاص INNER JOIN افرادضيافت ON اشخـــاص.ID=افرادضيافت.ID_Person AND افرادضيافت.ID_Repast=@C OR اشخـــاص.Fname=@E OR اشخـــاص.Lname=@F OR اشخـــاص.Identity_Num=@G OR اشخـــاص.Father=@H OR اشخـــاص.Status=@I";
else if (radioButton2.Checked == true)
cmd.CommandText = "SELECT *FROM ضيافت";
break;
}
}
cmd.Parameters.AddWithValue("@A", Convert.ToString(textBox1.Text));
cmd.Parameters.AddWithValue("@C", Convert.ToString(textBox2.Text));
cmd.Parameters.AddWithValue("@E", textBox4.Text);
cmd.Parameters.AddWithValue("@F", textBox5.Text);
cmd.Parameters.AddWithValue("@G", textBox6.Text);
cmd.Parameters.AddWithValue("@H", textBox7.Text);
cmd.Parameters.AddWithValue("@I", comboBox2.Text);
cmd.Parameters.AddWithValue("@J", Convert.ToInt64(comboBox3.Text + comboBox4.Text + comboBox5.Text));
cmd.Parameters.AddWithValue("@K", Convert.ToInt64(comboBox6.Text + comboBox7.Text + comboBox8.Text));
da.SelectCommand = new SqlCommand();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds, "T_Inf");
cn.Close();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "T_Inf";
}
catch
{
}
و اينم فرم ام هست:
http://up.iranblog.com/Files/814e216e23c14ed9987d.PNG
متأسفانه تعداد فيلدها زياده و براي جستجو دچار مشكل شدم.
از طرفي تعداد بخش ها(جدولها) ابتدا بايد انتخاب بشه براي جستجو .
و چيزي كه هم براي بررسي تكست باكس پر بين فيلدها OR به كار بردم كه البته اين كد خلاصه شده وگرنه از اين وحشت ناكتره!
try
{
SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=Xadamat;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
if (comboBox1.Text == "انتخاب شود")
{
MessageBox.Show("لطفاً بخش مورد نظر را انتخاب كنيد", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
switch (comboBox1.Text)
{
case "اطلاعات وام":
cmd.CommandText = "SELECT اشخـــاص.ID,اشخـــاص.Dossier_Num, شخـــاص.Lname,اشخـــاص.Fname,اش ـــاص.Identity_Num,اشخـــاص.Father, شخـــاص.Status,اشخـــاص.Recruitmen t_Date,اشخـــاص.Pensioner_Date,اشخــ اص.Description,وام.Loan_Type,وام.Loan_Cos t,وام.Division_Cost,وام.Division_Num,وام. Request_Date,وام.Done_Date FROM اشخـــاص INNER JOIN وام ON ((اشخـــاص.ID=وام.ID_Person) AND (اشخـــاص.ID=@A OR (وام.RQdate BETWEEN @J AND @K)))";
break;
case "اطلاعات ضيافت":
if (radioButton1.Checked == true)
cmd.CommandText = "SELECT افرادضيافت.ID_Repast,اشخـــاص.ID ,اشخـــاص.Dossier_Num,اشخـــاص.Lna me,اشخـــاص.Fname,اشخـــاص.Identit y_Num,اشخـــاص.Father,اشخـــاص.Sta tus,اشخـــاص.Recruitment_Date,اشخـــ اص.Pensioner_Date,اشخـــاص.Description FROM اشخـــاص INNER JOIN افرادضيافت ON اشخـــاص.ID=افرادضيافت.ID_Person AND افرادضيافت.ID_Repast=@C OR اشخـــاص.Fname=@E OR اشخـــاص.Lname=@F OR اشخـــاص.Identity_Num=@G OR اشخـــاص.Father=@H OR اشخـــاص.Status=@I";
else if (radioButton2.Checked == true)
cmd.CommandText = "SELECT *FROM ضيافت";
break;
}
}
cmd.Parameters.AddWithValue("@A", Convert.ToString(textBox1.Text));
cmd.Parameters.AddWithValue("@C", Convert.ToString(textBox2.Text));
cmd.Parameters.AddWithValue("@E", textBox4.Text);
cmd.Parameters.AddWithValue("@F", textBox5.Text);
cmd.Parameters.AddWithValue("@G", textBox6.Text);
cmd.Parameters.AddWithValue("@H", textBox7.Text);
cmd.Parameters.AddWithValue("@I", comboBox2.Text);
cmd.Parameters.AddWithValue("@J", Convert.ToInt64(comboBox3.Text + comboBox4.Text + comboBox5.Text));
cmd.Parameters.AddWithValue("@K", Convert.ToInt64(comboBox6.Text + comboBox7.Text + comboBox8.Text));
da.SelectCommand = new SqlCommand();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds, "T_Inf");
cn.Close();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "T_Inf";
}
catch
{
}
و اينم فرم ام هست:
http://up.iranblog.com/Files/814e216e23c14ed9987d.PNG