PDA

View Full Version : join .دو جدول از 2 دیتابیس



kiana_65
یک شنبه 15 شهریور 1388, 16:00 عصر
سلام.
فرض کنید که 2 تا دیتابیس داریم که دارای جداول مشترک هستند . می خوایم مثلا جدول 1 از دیتابیس 1 رو با جدول 1 از دیتابیس 2 joinکنیم .
من اطلاعات جدول هارو وارد دیتاست می کنم ولی وقتی روی jion شرط می ذارم خطا می ده .
تا اینجا درست کار می کنه :
string strcon2 = "select * from " + ds.Tables[1] + " JOIN" + ds.Tables[0];
شرط join رو چه جوری باید نوشت ؟

محمد سلیم آبادی
دوشنبه 16 شهریور 1388, 01:03 صبح
شما نمی توانید که هم زمان از داده های دو جدول استفاده کنید، یعنی وقتی که از دستور use database استفاده می کنیم اشیاء موجود در بانک اشاره شده قابل استفاده هستند.
باید از یک جدول موقت استفاده کنید، یعنی ابتدا داده های جدول بانک اول را در یک جدول موقت/متغیر ریخته سپس با جدول بانک دوم join/union کنید.

kiana_65
سه شنبه 17 شهریور 1388, 09:27 صبح
می شه یه منبع برای جدول موقت معرفی کنید ؟

mn_zandy63
چهارشنبه 18 شهریور 1388, 02:54 صبح
منظور ایشون از جدول موقت نوع خاصی از جداول نیست. منظور اینه که یک جدول ایجاد کنی داده های مورد نظرت رو بریزی داخل اون به طور موقت و بعد از اینکه کارت تموم شد، جدول رو حذف کنی.
البته نیازی نیست که حتما جدول رو اضافه و حذف کنی. اگه این جدول زیاد به کارت میاد اصلا به جداولت اضافش کن. هر وقت نیاز داشتی به اون کوئری، داده های مورد نیاز رو بریز داخلش کارت رو انجام بده.

موفق باشی.

محمد سلیم آبادی
چهارشنبه 18 شهریور 1388, 12:12 عصر
می شه یه منبع برای جدول موقت معرفی کنید ؟

بهترین منبع Book Online است (فکر کنم در سایت Microsoft بتوانید بطور Online مطالعه کنید)


منظور ایشون از جدول موقت نوع خاصی از جداول نیست. منظور اینه که یک جدول ایجاد کنی داده های مورد نظرت رو بریزی داخل اون به طور موقت و بعد از اینکه کارت تموم شد، جدول رو حذف کنی.
البته نیازی نیست که حتما جدول رو اضافه و حذف کنی. اگه این جدول زیاد به کارت میاد اصلا به جداولت اضافش کن. هر وقت نیاز داشتی به اون کوئری، داده های مورد نیاز رو بریز داخلش کارت رو انجام بده.

موفق باشی.

اگر از SQL Server استفاده می کنید ما جداول موقت (Temporary Table)، متغیر های جدولی (Table Variable) داریم.



Create table #test
(
i int
)

Declare test table
(
i int
)

اگر از SQL استفاده می کنید یک تحقیق ای هم روی OpenDataSource و.. انجام دهید.

kiana_65
چهارشنبه 18 شهریور 1388, 16:49 عصر
ممنون از راهنماییتون .
ولی من وقتی جدول موقت می سازم نمی تونه اون رو بشناسه و این خطا رو می ده :
Fill unable to find TableMapping['temp'] or DataTable 'temp'.

--------------------------------
string strcon1 = "create table #temp1( y1 int, y2 int)";
SqlDataAdapter da = new SqlDataAdapter(strcon1, m);
da.Fill(ds,"#temp");
string strcon2 = "insert into #temp values(1,2)";
SqlDataAdapter da1 = new SqlDataAdapter(strcon2, m);
da1.Update(ds, "#temp");

محمد سلیم آبادی
پنج شنبه 19 شهریور 1388, 10:26 صبح
راجب به پیغام خطا، دقت کنید در کدی که در پستتان قرار دادید ابتدا یک جدول با نام temp1 ایجاد کردید سپس از نام temp استفاده کردید.
نمی دونم آیا با temp کارتون حل می شود یا نه ولی من با کمک متغیر جدولی در خود SQL یک همچین کاری انجام دادم و اطلاعات بیشتری ندارم.




declare @t table
(i int)

use t
insert into @t
select i from t.dbo.t

use tt
select * from @t
union all
select * from tt.dbo.t

saadi2
پنج شنبه 19 شهریور 1388, 19:11 عصر
با سلام من تونستم به این صورتی که تو مثالی که گذاشتم این کارو انجام بدم میدونم جواب سوال شما نیست .
ولی از بقیه خواهش میکنم این برنامه رو کامل کنن تا به نتیجه برسیم.