مشکل در Read کردن اطلاعات دیتابیس sql در ویژوال استودیو
با درود
دوستان من اطلاعات جداولم رو میخوام در دیتاگرید ویو نمایش بدم، به مشکل بر خوردم، تیکه کد نمایش اطلاعات از یک جدول رو میدونم ولی برای نمایش اطلاعات دو جدول در گرید ویوو رو نمی دونم
من دو جدول دارم:
یکی جدول Contact که شامل نام - نام خانوادگی - جنسیت - شماره ملی و تاریخ تولد هست
و جدول دومم، KartMeli که شامل فیلدهای سریال کارت ملی و نوع کارت ملی (جدید یا قدیمی) می باشد
بحث ارتباط بین جداول رو هم درست کردم و مشکلی ندارم از این بابت
لطفا راهنمایی کنید بد گیرشم
این عکس که گذاشتم، با این کدی که نوشتم فقط میتونم اطلاعات یک جدول رو در گرید ویوو مشاهده کنم
http://s9.picofile.com/file/8362081726/09.JPG
اینم تصویری از دیتابیس و هر دو جدول من هست
http://s9.picofile.com/file/8362083300/20.png
کد من
public List<Contact> Read() // جدول کارت ملی رو اضافه کنم
{
string command = "Select * from Contact";
// با خط کد پائین، اطلاعات از جدول کارت ملی فراخوانی میکنم
// مشکل اینجاست که من نمی توانم اطلاعات رو از هر دو جدول کانتکت و کارت ملی فراخوانی کنم
//string command2 = "Select * from KartMeli";
var db = new DataAccess.DatabaseManager();
var result = db.GetData(command);
////var groupTypeList = new GroupType().Read();
List<Contact> lstResult = new List<Contact>();
foreach (DataRow r in result.Rows)
{
Contact contact = new Contact();
// اطلاعات شناسنامه
contact.ID = Convert.ToInt64(r["ID"]);
contact.Name = r["Name"].ToString();
contact.NameKhanevadegi = r["NameKhanevadegi"].ToString();
contact.Jensiat = Convert.ToBoolean(r["Jensiat"]); // اینجا جنسیت رادیو باتن مشخص میکند
contact.ShomarehMeli = r["ShomarehMeli"].ToString();
contact.TarikhTavalod = Convert.ToDateTime(r["TarikhTavalod"]);
// اطلاعات کارت ملی
//contact.idk = Convert.ToInt64(r["idk"]);
//contact.SerialKartMeli_KartMeli = r["SerialKartMeli_KartMeli"].ToString();
//contact.NoeKartMeli = (bool)r["NoeKartMeli"];
lstResult.Add(contact);
}
return lstResult;
}
مشخصات برنامه من
برنامه سه لایه: لایه اول Busines - لایه دوم UI - لایه سوم DataBase
ویژوال استودیو 2017
سی شارپ
اس کیو ال 2017
نقل قول: مشکل در Read کردن اطلاعات دیتابیس sql در ویژوال استودیو
سلام
بهترین کار استفاده از دستورات SQL و Join کردن جداول مرتبط باهم است. انواع Join کردن رو در اینترنت و یا همین سایت جستجو کنید حتما نتیجه میگیرید
نقل قول: مشکل در Read کردن اطلاعات دیتابیس sql در ویژوال استودیو
والله گشتم ، توضیحات دوستان خوب بود ولی من متوجه نمی شدم
امکانش هست لطف کنید و دیتابیس من را طراحی کنید یا وقت بزارید آموزش مختصری بدید
خیلی معطل این مورد شدم و کلی هم جستجو بی نتیجه داشتم
هزینه آموزش پرداخت می شود
نقل قول: مشکل در Read کردن اطلاعات دیتابیس sql در ویژوال استودیو
میخوای دو تا جدول و تو یه گرید ویو نشون بدی؟
3 ضمیمه
نقل قول: مشکل در Read کردن اطلاعات دیتابیس sql در ویژوال استودیو
ی مثال ساده از Join کردن دو جدول
SELECT dbo.tblContact.*,
dbo.tblKartMeli.*
FROM dbo.tblContact
LEFT JOIN dbo.tblKartMeli ON dbo.tblKartMeli.Contact_ID = ID
WHERE dbo.tblContact.ID = 1
ضمیمه 150272
ضمیمه 150273
خروجی دستور بالا. البته بجای * میتونید نام فیلدهای مورد نظر خودتون رو بنویسید تا ستون های اضافه نمایش داده نشوند
ضمیمه 150274
نقل قول: مشکل در Read کردن اطلاعات دیتابیس sql در ویژوال استودیو
سپاسگزارم
قطعه کد خواندن در برنامه ویژوال استودیو رو چی باید بنویسم؟
من این کد رو مینوشتم قبلا، برای یک جدول کاربرد داشت ولی الان که میخوام برای بیش از یک جدول بخوانم، کاربرد ندارد
public List<Contact> Read() // الان فقط میتونم اطلاعات جدول کانتکت را اضافه در گرید ویوو ببینم
{
string command = "Select * from Contact";
// با خط کد پائین، اطلاعات از جدول کارت ملی فراخوانی میکنم
// مشکل اینجاست که من نمی توانم اطلاعات رو از هر دو جدول کانتکت و کارت ملی فراخوانی کنم
//string command2 = "Select * from KartMeli";
var db = new DataAccess.DatabaseManager();
var result = db.GetData(command);
////var groupTypeList = new GroupType().Read();
List<Contact> lstResult = new List<Contact>();
foreach (DataRow r in result.Rows)
{
Contact contact = new Contact();
// اطلاعات شناسنامه
contact.ID = Convert.ToInt64(r["ID"]);
contact.Name = r["Name"].ToString();
contact.NameKhanevadegi = r["NameKhanevadegi"].ToString();
contact.Jensiat = Convert.ToBoolean(r["Jensiat"]); // اینجا جنسیت رادیو باتن مشخص میکند
contact.ShomarehMeli = r["ShomarehMeli"].ToString();
contact.TarikhTavalod = Convert.ToDateTime(r["TarikhTavalod"]);
// اطلاعات کارت ملی
//contact.idk = Convert.ToInt64(r["idk"]);
//contact.SerialKartMeli_KartMeli = r["SerialKartMeli_KartMeli"].ToString();
//contact.NoeKartMeli = (bool)r["NoeKartMeli"];
lstResult.Add(contact);
}
return lstResult;
}
نقل قول: مشکل در Read کردن اطلاعات دیتابیس sql در ویژوال استودیو
شما خیلی راحت توی sql یه ویو از دوتا جدولت بساز توی C# اون رو فراخوانی کن.
چه کاریه آخه ؟!
نقل قول: مشکل در Read کردن اطلاعات دیتابیس sql در ویژوال استودیو
این هم برای ارتباط چندین جدول با هم هستش.
SELECT DISTINCT
TOP (100) PERCENT Tbl_Sabt_Motovafy.SM_ID, Tbl_Sabt_Motovafy.SM_SHS_ShomareSanad, Tbl_Sabt_Motovafy.SM_Shomare_Pavande, Tbl_Sabt_Motovafy.SM_CM_Code_Mali, Tbl_Sabt_Motovafy.SM_Meleyat,
CASE WHEN Tbl_Sabt_Motovafy.SM_Meleyat = 1 THEN N'ایرانی' ELSE N'غیر ایرانی' END AS egleyat, Tbl_category_sex.CTS_Sex, Tbl_Sabt_Motovafy.SM_NameAndLast, Tbl_Sabt_Motovafy.SM_Father,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Sabt_Motovafy.SM_Bor n, '/') AS Expr1) AS SM_Born,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Sabt_Motovafy.SM_Dea th, '/') AS Expr1) AS SM_Death, Tbl_Sabt_Motovafy.SM_Faz, Tbl_NameGete.NG_NameGete, Tbl_Sabt_Motovafy.SM_Gete, Tbl_Sabt_Motovafy.SM_Radif,
Tbl_Sabt_Motovafy.SM_Shomare, Tbl_Sabt_Motovafy.SM_Tabage, Tbl_Sabt_Motovafy.SM_AgeYear, Tbl_Bolog.B_Bolog AS SM_ID_Bolog, Tbl_Sabt_Motovafy.SM_Mahal_Dafn, Tbl_Users.U_U_Username,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Sabt_Motovafy.SM_Ins ert_Date, '/') AS Expr1) AS SM_Insert_Date,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Sabt_Motovafy.SM_Upd ate_Date, '/') AS Expr1) AS SM_Update_Date, Tbl_Sabt_Motovafy.SM_IP
FROM Tbl_Sabt_Motovafy INNER JOIN
Tbl_category_sex ON Tbl_Sabt_Motovafy.SM_Sex = Tbl_category_sex.CTS_ID INNER JOIN
Tbl_NameGete ON Tbl_Sabt_Motovafy.SM_Name_Gete = Tbl_NameGete.NG_ID INNER JOIN
Tbl_Users ON Tbl_Sabt_Motovafy.SM_U_Username = Tbl_Users.U_ID INNER JOIN
Tbl_Bolog ON Tbl_Sabt_Motovafy.SM_ID_Bolog = Tbl_Bolog.B_ID_Bolog
WHERE (Tbl_Sabt_Motovafy.SM_NameAndLast LIKE N'%' + @SM_NameAndLast + '%')
ORDER BY Tbl_Sabt_Motovafy.SM_NameAndLast, Tbl_Sabt_Motovafy.SM_ID DESC