e_ghadimi
چهارشنبه 07 بهمن 1388, 19:59 عصر
سلام
من این کد روبرای پر کردن گزارشم نوشتم ولی هنگام گرفتن گزارش با اینکهDataTable پر می شه و مقادیر رو تو گریدویو نشون می ده ولی مقادیر تو گزارش نشون داده نمی شه
مشکل چیه ؟
SqlConnection cn=new SqlConnection("SERVER=LocalHost;DATABASE=Hospital_db;Integrated Security=True;");
SqlConnection cn2=new SqlConnection("SERVER=LocalHost;DATABASE=Hospital_db;Integrated Security=True;");
string ReDate = textBox1.Text;
string Code = textBox2.Text;
ResultCmd = new SqlCommand();
ResultCmd.CommandText = "Select TestRequest.Name,TestRequest.Result,Test.Unit,Test .Normal " + " From TestRequest INNER JOIN Test " + " ON TestRequest.Name=Test.Name And TestRequest.SampleCode='"+Code +"' And TestRequest.RequestDate='"+ReDate+"'";
ResultCmd.Connection = cn;
PatientCmd = new SqlCommand();
PatientCmd.CommandText = "Select Date,CustomerId,DoctorName,FirstName,LastName,Age " + " From LabCustomers " + " Where Date='"+ReDate+"' And SampleCode='"+Code+"'";
PatientCmd.Connection = cn2;
ReportDt = new DataTable();
ReportDt.Columns.Add("Name");
ReportDt.Columns.Add("Result");
ReportDt.Columns.Add("Unit");
ReportDt.Columns.Add("Normal");
ReportDt.Columns.Add("Date");
ReportDt.Columns.Add("CustomerId");
ReportDt.Columns.Add("DoctorName");
ReportDt.Columns.Add("FirstName");
ReportDt.Columns.Add("LastName");
ReportDt.Columns.Add("Age");
cn.Open();
SqlDataReader ResultDr;
ResultDr = ResultCmd.ExecuteReader();
while (ResultDr.Read())
{
DataRow row = ReportDt.NewRow();
if(ResultDr[0] !=DBNull.Value)
{
row["Name"]=ResultDr.GetString(0);
}
if(ResultDr[1] !=DBNull.Value)
{
row["Result"]=ResultDr.GetString(1);
}
if(ResultDr[2] !=DBNull.Value)
{
row["Unit"]=ResultDr.GetString(2);
}
if(ResultDr[3] !=DBNull.Value)
{
row["Normal"]=ResultDr.GetString(3);
}
cn2.Open();
SqlDataReader PatientDr;
PatientDr = PatientCmd.ExecuteReader();
while (PatientDr.Read())
{
if (PatientDr[0] != DBNull.Value)
{
row["Date"] = PatientDr.GetString(0);
}
if (PatientDr[1] != DBNull.Value)
{
row["CustomerId"] = PatientDr.GetString(1);
}
if (PatientDr[2] != DBNull.Value)
{
row["DoctorName"] = PatientDr.GetString(2);
}
if (PatientDr[3] != DBNull.Value)
{
row["FirstName"] = PatientDr.GetString(3);
}
if (PatientDr[4] != DBNull.Value)
{
row["LastName"] = PatientDr.GetString(4);
}
if (PatientDr[5] != DBNull.Value)
{
row["Age"] = PatientDr.GetString(5);
}
}
PatientDr.Close();
cn2.Close();
ReportDt.Rows.Add(row);
}
ResultDr.Close();
cn.Close();
Form2 t = new Form2();
t.CrystalReport11.SetDataSource(ReportDt);
t.crystalReportViewer1.ReportSource = t.CrystalReport11;
t.ShowDialog();
}
من این کد روبرای پر کردن گزارشم نوشتم ولی هنگام گرفتن گزارش با اینکهDataTable پر می شه و مقادیر رو تو گریدویو نشون می ده ولی مقادیر تو گزارش نشون داده نمی شه
مشکل چیه ؟
SqlConnection cn=new SqlConnection("SERVER=LocalHost;DATABASE=Hospital_db;Integrated Security=True;");
SqlConnection cn2=new SqlConnection("SERVER=LocalHost;DATABASE=Hospital_db;Integrated Security=True;");
string ReDate = textBox1.Text;
string Code = textBox2.Text;
ResultCmd = new SqlCommand();
ResultCmd.CommandText = "Select TestRequest.Name,TestRequest.Result,Test.Unit,Test .Normal " + " From TestRequest INNER JOIN Test " + " ON TestRequest.Name=Test.Name And TestRequest.SampleCode='"+Code +"' And TestRequest.RequestDate='"+ReDate+"'";
ResultCmd.Connection = cn;
PatientCmd = new SqlCommand();
PatientCmd.CommandText = "Select Date,CustomerId,DoctorName,FirstName,LastName,Age " + " From LabCustomers " + " Where Date='"+ReDate+"' And SampleCode='"+Code+"'";
PatientCmd.Connection = cn2;
ReportDt = new DataTable();
ReportDt.Columns.Add("Name");
ReportDt.Columns.Add("Result");
ReportDt.Columns.Add("Unit");
ReportDt.Columns.Add("Normal");
ReportDt.Columns.Add("Date");
ReportDt.Columns.Add("CustomerId");
ReportDt.Columns.Add("DoctorName");
ReportDt.Columns.Add("FirstName");
ReportDt.Columns.Add("LastName");
ReportDt.Columns.Add("Age");
cn.Open();
SqlDataReader ResultDr;
ResultDr = ResultCmd.ExecuteReader();
while (ResultDr.Read())
{
DataRow row = ReportDt.NewRow();
if(ResultDr[0] !=DBNull.Value)
{
row["Name"]=ResultDr.GetString(0);
}
if(ResultDr[1] !=DBNull.Value)
{
row["Result"]=ResultDr.GetString(1);
}
if(ResultDr[2] !=DBNull.Value)
{
row["Unit"]=ResultDr.GetString(2);
}
if(ResultDr[3] !=DBNull.Value)
{
row["Normal"]=ResultDr.GetString(3);
}
cn2.Open();
SqlDataReader PatientDr;
PatientDr = PatientCmd.ExecuteReader();
while (PatientDr.Read())
{
if (PatientDr[0] != DBNull.Value)
{
row["Date"] = PatientDr.GetString(0);
}
if (PatientDr[1] != DBNull.Value)
{
row["CustomerId"] = PatientDr.GetString(1);
}
if (PatientDr[2] != DBNull.Value)
{
row["DoctorName"] = PatientDr.GetString(2);
}
if (PatientDr[3] != DBNull.Value)
{
row["FirstName"] = PatientDr.GetString(3);
}
if (PatientDr[4] != DBNull.Value)
{
row["LastName"] = PatientDr.GetString(4);
}
if (PatientDr[5] != DBNull.Value)
{
row["Age"] = PatientDr.GetString(5);
}
}
PatientDr.Close();
cn2.Close();
ReportDt.Rows.Add(row);
}
ResultDr.Close();
cn.Close();
Form2 t = new Form2();
t.CrystalReport11.SetDataSource(ReportDt);
t.crystalReportViewer1.ReportSource = t.CrystalReport11;
t.ShowDialog();
}