رفتن به مطلب
  • 0

سوال دیتابیسی


afraz11

سوال

سلام بر دوستان گل

دوستان بنده همین الان یه سوال به ذهنم رسید آیا میشه از این دستور به این صورت استفاده کرد

cur=sql1.ExecQuery("SELECT * FROM tbl1 AND tbl2 where fav=1"

یعنی از دو جدول تو دستور بالا استفاده کنیم یه همچین چیزی امکان داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

12 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

اینم سورس

همین الان درستش کردم

اول اجراش کنید و روش کار رو ببینید و بعد برید سراغ کد هاش

در قسمت لیست موضوعات وارد هر سر فصل بشید ، لیست زیر فصل ها میاد

با long click به علاقه مندی اضافه میشه

سوالی بود در خدمتم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام :)

نه برادر همچین چیزی ممکن نیست 90 درصد کوئری ها فقط قادر به کار با یک تیبل هستند جسارتا کوئری هایی که بالا قرار داده شده اشتباه هست فقط کوئری آقای ایزدی چون اومده بین اسم دو تیبل , قرار داده خطا تولید نمیشه وگرنه عملا اشتباه هست :)

البته اینکار توی php شدنی هست با نوشتن چند خط تابع میشه یک فانکشن joind تعریف کرد و کوئری دوم اضافه کرد ولی بازم دو کوئری قرار داده میشه اما فایدش اینه که میتونی توی یک خط اطلاعات این کوئری را با اون کوئری را مورد بررسی قرار بدی یک مثال میزنم :

فرضا شما دوتا تیبل داری به اسم های tab1 , tab2 در هردوش id داری میخوای شرط بذاری اگه آی دی این با ای دی اون یکی برابر بود سلکت انجام بشه دوتا تیبل هارو مچ میکنه با یک عبارت :

('tab1', 'u')
('tab2', 'v')

حالا برای دریافت آیدی تیبل اول به این صورت وارد میکنی u.id و برای دومی هم v.id

فقط خواستم بگم غیر ممکن نیست چیزی که میخواید ولی تو این زبان برنامه نویسی فکر نکنم شدنی باشه :)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با تشکر ازM.izadiو

باید به عرض آقای ایزدی برسانم که کدی که فرموده بودید رو تست کردم ولی ارور میدی آنقدری که بنده فهمیدم دستور بالایی نمیتونه دو جدولو با هم بگیره اگه اینطوره از آقای ایزدی و سایر دوستان عزیز خواهش میکنم یه راهی برای انجام اینکار پیدا کند(صد در صد راهی خواهد بود)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما دقیقا بگید چیکار میخواید بکنید بهتر میشه راهنمایی کرد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب آقای

شما فرض کنید من یه دیتابیس دارم که توش چندتا جدول وجود داره مثلا 3تا جدول داره

خوب من میخوام یه لیست علاقه مندیها داشته باشم که همه این جدولا توش باشن یعنی یه صفحه علاقه مندیها داشته باشم که هر سه جدول رو پشتیبانی کنه

خوب به نظر شما باید چیکار کنم

تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

چرا هر جدولو جدا سلکت نمیکنید ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یعنی چه جوری آقای حسن قاسمی نیا

یعنی دو بار curپرکنم

cur =menu1.sql1.ExecQuery("SELECT * FROM tbl1 where fav=1")

cur =menu1.sql1.ExecQuery("SELECT * FROM tbl2 where fav=1")

یعنی اینجوری امکان داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اسم متغیر هارو عوض کنید قاعدتا باید امکان داشته باشه :

cur1 = sql1.ExecQuery("SELECT * FROM tbl1 WHERE tbl1.fav=1")
cur2 = sql1.ExecQuery("SELECT * FROM tbl2 WHERE tbl2.fav=1")
cur3 = sql1.ExecQuery("SELECT * FROM tbl3 WHERE tbl3.fav=1")

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یه سوال دیگه حالا باید برای هر کدوم یه تو صفحه علاقه مندیها پوزیشن مختلف تعرف کردن یعنی مثل کد زیر که فقط برای یه tbl استفاده شد

For i= 0 To cur.RowCount -1

cur.Position=i

ListView1.AddTwoLinesAndBitmap2(cur.GetString("onvan"),"",LoadBitmap(File.DirAssets,cur.GetString("aks")),cur.GetInt("id"))

next

و بقیه کدها

و یه چیز دیگه باید سه تا حلقه تعریف کنیم مثلا

For i= 0 To cur.RowCount -1

cur.Position=i

کد مورد نظر

Next

For i= 0 To cur2.RowCount -1

cur.Position=i

کد مورد نظر

Next

For i= 0 To cur3.RowCount -1

cur.Position=i

کد مورد نظر

Next

میشه یه توضیح مختصری بدید

با تشکر فراوان از پاسخگویی شما

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و خسته نباشید

یه راه دیگه هم هست که از کوئری ساختن به نظرم راحت تره

اما خوب روش کوئری رو هم باید بررسی کرد

ببینید شما 2 تا تیبل دارید

یه ماژول جدید ایجاد میکنید که وقتی روی علاقه مندی کلیک شد اون ماژول نمایش داده بشه

حالا به شکل دستی یه لیست ویو میسازید که 2تا ایتم داره مثلا test1 و test2

یه متغیر به اسم meghdar ایجاد میکنیم از نوع int در Process_Globals

در قسمت کد نویسی کلیک این لیست ویو میگیم ماژول 2 یعنی مآژول دومی که ساختیم رو نمایش بده فقط میگیم وقتی value = 1 بود meghdar = value و وثتی value = 2 بود هم meghdar = value

حالا در مآژول جدیدمون قید میکنیم اگه متغیر meghdar=1 بود(یعنی اگه رو ایتم اول که = تیبل اول ماست) لیست ویو اطلاعات تیبل یک رو فراخوانی کنه و اگه مقدار متغیر meghdar=2 بود تیبل دوم مارو فرواخانی کنه کنه...

فراخوانی متن هم به همون روش معمول انجام میدیم

فقط در هنگام فراخوانی متن هم یه شرط میزاریم که اگه meghdar=1 متن هارو از تیبل 1 و اگه meghdar=2 بود متن هارو از تیبل 2 بخونه

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

درود

بنده تست کردم میشه ولی توی نمایش اطلاعات چون ما از حلقه استفاده میکنیم فقط محتویات یکی از Table هارو نشون میده ...

باید به این صورت عمل کنیم:

cur1 = sql1.ExecQuery("SELECT * FROM tbl1, tbl2 WHERE tbl1.fav=1 AND tbl2.fav=1")

   For i = 0 To cur1.RowCount-1
   cur1.Position = i
   ListView1.AddSingleLine(cur1.GetString("name"))
   Next

تست کنید خودتون و بیشتر روش کار کنید.

نتیجه رو گزارش بدید

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...