PDA

View Full Version : مشکل در تلفیق چند جدول و نمایش در Data Graid



مهدی فضلی
دوشنبه 16 آبان 1390, 10:13 صبح
سلام دوستان
من چند تا جدول دارم و میخوام این چند جدول رو تلفیق کنم و فیلد های بخصوصی رو درون دیتا گرید نمایش بدم

اس کیو ال رو به این ترتیب نوشتم :


str =

"select Itemtype,ItemBrand,ItemModel,ItemSerial,ItemProble m,ItemEquipments,CstmrName from Itemgaran inner join " + _

"item on itemgaran.itemid=item.itemid inner join"



+ _

"garanfact on item.GaranfactID=garanfact.GaranfactID inner join "



+ _

"cstmr on itemgaran.cstmrcode=cstmr.cstmrcode WHERE garanfact.GaranName='"



+ Trim(s) + "'"


حالا میخوام که این اطلاعات رو یعنی این فیلد های انتخابی رو توی یک دیتا گرید نمایش بدم. چیکار باید بکنم؟




اگر میشه کمکم کنید.




بشدت نیاز دارم




ممنونم

hosseinmghi
دوشنبه 16 آبان 1390, 18:31 عصر
اگه مطمئنی دستورت درست کار می کنه چندین راه وجود داره...
ساده ترینش اینه که یه گرید بندازی رو فرمت و ویزارد دیتاسورس رو دنبال کنی ... کدت رو تو قست Qurey وارد کنی حله.

مهدی فضلی
دوشنبه 16 آبان 1390, 23:02 عصر
دوست عزیز تشکر میکنم از جوابتون اما اونطوری فقط یک جدول رو میگیره

hosseinmghi
سه شنبه 17 آبان 1390, 13:47 عصر
اینجا
http://img.ir/main/upload/up1/img-ir_2ded59581d1.jpg
دستورت رو وارد کن.فقط اول باید Connection String رو درست تعریف کرده باشید.
دقت داشته باش یه دستور sql درصورتی که صحیح باشه اصلا اهمیت نداره از چه راهی یا متدی اجراش می کنی.اگه 100 تا جدول هم join کرده باشی درست کار می کنه.
اگه ستونهای گرید هم auto باشه که فیلدهای صدتا جدولم نشون میده.
برای فیل کردن گرید راههای متعدد دیگه ای هم هست.این راحت ترین راهه.
اگه نتونستی بگو یه سمپل بزارم.

مهدی فضلی
سه شنبه 17 آبان 1390, 16:17 عصر
تشکر میکنم حسین جان
من زیاد با این قسمت آشنایی ندارم میشه یه مثال بزنی؟

saeed_sho
سه شنبه 17 آبان 1390, 18:46 عصر
چطوری فرمت یکی از ستون های دیتا گرید ویو رو عوض کنم مثلا تاریخ میلادی رو به فارسی با این حلقه اما اینو کجا بزنم تا کار کنه توی cellFormatting میذارم حلقه بینهایت میشه توی متد لود فرم گذاشتم بازم بینهایت شد کجا بذارمش؟
string PersionDate(string miladi)
{
try
{

PersianCalendar jc = new PersianCalendar();
DateTime thisDate = DateTime.Parse(miladi);
string day;
string month;
string year;
string newdate = "";
day = jc.GetDayOfMonth(thisDate).ToString();
month = jc.GetMonth(thisDate).ToString();
year = jc.GetYear(thisDate).ToString();
if (int.Parse(day) < 10)
{
day = "0" + day;
}
if (int.Parse(month) < 10)
{
month = "0" + month;
}
newdate = year + "/" + month + "/" + day;

return newdate;
}
catch (Exception)
{

}
return "";
}

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
string d = Convert.ToString(dataGridView1.Rows[i].Cells[5].Value);
string sh = PersionDate(d);
dataGridView1.Rows[i].Cells[5].Value = sh;
}
}

مرتضی تقدمی
سه شنبه 17 آبان 1390, 20:11 عصر
سلام
بهترین روش, ساختن view از جدول های مورد نظر هست.

saeed_sho
سه شنبه 17 آبان 1390, 20:31 عصر
اگه با منید میشه توضیح مختصری بدی

مرتضی تقدمی
سه شنبه 17 آبان 1390, 20:38 عصر
من این رو در جواب مهدی فضلی (http://barnamenevis.org/member.php?193468-%D9%85%D9%87%D8%AF%DB%8C-%D9%81%D8%B6%D9%84%DB%8C) گفتم. در مورد view هم به این تاپیک (http://barnamenevis.org/showthread.php?299786-%D9%83%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%83%D8%B1%D9%8A%D8%B3%D8%AA%D8%A7%D9%84-%D8%A7%D8%B2-%D8%B7%D8%B1%D9%8A%D9%82-%D9%83%D8%AF-%D9%83%D9%85%D9%83&highlight=view)مراجعه کنید. پست 7

مهدی فضلی
سه شنبه 17 آبان 1390, 23:27 عصر
مرتضی جان سلام . چطور میتونم ویو بسازم؟ مشکل اصلی من اینجاس!

مرتضی تقدمی
سه شنبه 17 آبان 1390, 23:36 عصر
سلام
در management studio روی پوشه view مربوط به بانک اطلاعاتی کلیک راست کنید و new view رو انتخاب کنید. از کادری که باز می شود جدول های مورد نظر رو انتخاب کنید و در ادامه هر فیلدی را که مایل بودید در ویو قرار داشته باشد انتخاب کنید. برای ایجاد رابطه بین جدول ها, فیلد مورد نظر در یک جدول رو به روی فیلد مورد نظر از جدول دیگه درگ کنید. در پایان هم ویو رو با نام دلخواه ذخیره کنید.
من فعلا در همین حد که فکر می کنم لازم باشه توضیح دادم. مشکلی داشتید در خدمتم.
موفق باشید