PDA

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



rashidi_sm
دوشنبه 09 اردیبهشت 1392, 11:55 صبح
سلام
در سی شارپ حداکثر چند جدول را می شه با هم join کرد؟
هر چی در اینترنت گشتم فقط کدهای SQL پیدا کردم
آیا کد زیر در ارتباط با به هم پیوستن 4 جدول درسته؟ اگه درست نیست چه جوری باید نوشت؟
string str1 = "SELECT ownerNationalCode,ownerName,ownerFamily,houseType, ContractorFamily,payingAmount,villageName,province Ostan,stateOrshahrestan FROM province INNER join state on province.provinceOstan=state.provinceOstan INNER join village on state.stateOrshahrestan=village.stateOrshahrestan INNER join statementOfOwner on village.villageName=statementOfOwner.villageName where (provinceOstan =@p1)";
SqlCommand cmd = new SqlCommand(str1, Con);

cmd.Parameters.AddWithValue("@p1", ostan.Text);

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
Con.Open();
da.Fill(ds, "province");
Con.Close();
dataGridView1.DataBindings.Add(new Binding("datasource", ds, "province"));

mousa1992
دوشنبه 09 اردیبهشت 1392, 12:02 عصر
سلام
بله هرچندتا جدولو که بخواین میتونید با هم join کنید و کدتون به نظر مشکلی نداره ، آیا خطایی ازتون میگیره؟

rashidi_sm
دوشنبه 09 اردیبهشت 1392, 12:19 عصر
بله خطای زیر رو می گیرد
Ambiguous column name 'provinceOstan'.

Ambiguous column name 'villageName'.

Ambiguous column name 'provinceOstan'
این ستون ها به همان صورتی که بالا نوشتم وجود دارند ولی نمی دونم چرا این پیام را می دهد

rashidi_sm
دوشنبه 09 اردیبهشت 1392, 12:20 عصر
بله خطای زیر رو می گیرد
Ambiguous column name 'provinceOstan'.

Ambiguous column name 'villageName'.

Ambiguous column name 'provinceOstan'
این ستون ها به همان صورتی که بالا نوشتم وجود دارند ولی نمی دونم چرا این پیام را می دهد

Mahmoud.Afrad
دوشنبه 09 اردیبهشت 1392, 12:33 عصر
این ستونها ، ستونهای مشترک هستند که در بیش از یک جدول وجود دارند پس باید مشخص کنید ستون کدام جدول مدنظر شماست. در اینجور مواقع نام ستونها رو همراه نام جدول ذکر کنید.(البته بهتره برای همه ستونها اینکار رو انجام بدید)
SELECT ..., province.provinceOstan , ... join ....

mousa1992
دوشنبه 09 اردیبهشت 1392, 12:34 عصر
بخاطر اینکه این سه فیلد نام برده توی هر سه جدول وجود داره و شما مشخص نکردین که فیلد رو از کدوم جدول باید استخراج کنه - قبل ازنام فیلدهاتون اسم جدول هم بنویسید مشکل حل میشه
برای مثال village.villagename

rashidi_sm
دوشنبه 09 اردیبهشت 1392, 13:01 عصر
تشکر دوست عزیز :)
مشکلم حل شد