PDA

View Full Version : سوال: چه طور می شود اطلاعات را نشان داد و اعداد مرطبت با آن را جمع و نمایش داد



m.ghorbani2000
یک شنبه 31 شهریور 1392, 18:40 عصر
با سلام
من پروژه ای ساختم که متواند اطلاعات پزشکان مانند : نام و نام خانوادگی و حق ویزیت و ... را بگیرد و در دیتابیس ذخیره کند من می خواهم اطلاعات پزشکان را نشان دهد و تعداد حضور آن در درمانگاه را ضرب در
حق ویریت اش کند و آن را نمایش دهد من برای این پروژه این کد ها را نوشتم
SqlConnection con = new SqlConnection();
con.ConnectionString = strConnection;
SqlCommand cmd = new SqlCommand();
SqlCommand exp = new SqlCommand();
cmd.Connection = con;
exp.Connection = con;
cmd.CommandType = System.Data.CommandType.Text;
exp.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "SELECT Shomare_Hesab, Moshaver_Name,Moshaver_Family,Moshaver_ID FROM tblMoshaver WHERE Moshaver_ID = 20000";
exp.CommandText = "SELECT COUNT (*) * 200000 FROM tblBarnameHozour WHERE Mamayi = 20000 AND Vazeyat LIKE '%حاضر%'";
con.Open();
SqlDataReader reader1 = cmd.ExecuteReader();
while (reader1.Read())
{

Console.WriteLine("Name:{0}", reader1["Moshaver_Name"]);
Console.WriteLine("Family:{0}", reader1["Moshaver_Family"]);
Console.WriteLine("Nuber of Account:{0}", reader1["Shomare_Hesab"]);
reader1.Close();
Console.WriteLine("Money:{0} {1}", exp.ExecuteScalar(), "RLS");
return;


}
con.Close();
برای اینکه تعداد رکود ها را بشمارد باید reader1 بسته شود وقتی من آن را با دستور reader.Close();
می بندم وقتی حلقه While به اول دستورات می رسد ارور می دهد لطفا کمک کنید که چطور که همه اطلاعات را با جمع حق ویریت نشان دهم

hamid_hr
یک شنبه 31 شهریور 1392, 18:54 عصر
خب وقتي ببنديش ارتباطش با پايگاه داده بسته ميشه
اين كار رو بكن
DataTable dt = new DataTable();
dt.Load(reader);
بعد پردازشا رو روي ديتا تيبل انجام بده

m.ghorbani2000
یک شنبه 31 شهریور 1392, 18:56 عصر
می شه دقیق تر توضیح بدید

m.ghorbani2000
یک شنبه 31 شهریور 1392, 18:57 عصر
چطور میشود اطلاعات را با Data Table نشان داد

hamid_hr
یک شنبه 31 شهریور 1392, 19:04 عصر
foreach(datarow tmp in dt)
{
Console.WriteLine("Name:{0}", tmp["Moshaver_Name"]);
Console.WriteLine("Family:{0}", tmp["Moshaver_Family"]);
Console.WriteLine("Nuber of Account:{0}", tmp["Shomare_Hesab"]);
}

m.ghorbani2000
یک شنبه 31 شهریور 1392, 19:15 عصر
پس دستور این شکلی می شه
SqlConnection con = new SqlConnection();
con.ConnectionString = strConnection;
SqlCommand cmd = new SqlCommand();
SqlCommand exp = new SqlCommand();
cmd.Connection = con;
exp.Connection = con;
cmd.CommandType = System.Data.CommandType.Text;
exp.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "SELECT Shomare_Hesab, Moshaver_Name,Moshaver_Family,Moshaver_ID FROM tblMoshaver WHERE Moshaver_ID = 20000";
exp.CommandText = "SELECT COUNT (*) * 200000 FROM tblBarnameHozour WHERE Mamayi = 20000 AND Vazeyat LIKE '%حاضر%'";
con.Open();
SqlDataReader reader1 = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader1);
foreach(datarow tmp in dt)
{
Console.WriteLine("Name:{0}", tmp["Moshaver_Name"]);
Console.WriteLine("Family:{0}", tmp["Moshaver_Family"]);
Console.WriteLine("Nuber of Account:{0}", tmp["Shomare_Hesab"]);
Console.WriteLine("Money:{0} {1}", exp.ExecuteScalar(), "RLS");
}

}
con.Close();