PDA

View Full Version : سوال: اتصال مقادیر کوئری چند فیلد



mohamadlvs
جمعه 16 تیر 1391, 11:47 صبح
سلام
برای اتصال مقادیر کوئری چند فیلد از یک جدول به هم و نمایش آن در یک خانه گرید ویو راهنمایی کنید


SELECT Sales.CustomerID as [کد مشتری], Wholesaler.WholesalerName as [نام مشتری], Sales.SaleID as [شماره فاکتور] Products.ProductName, Products.Carat, Sales.Quantity,Sales.Weight

می خواهم که فیلدهایی که هدرشان مشخص شده جداگانه هر کدام در یک ستون دیتا گرید و فیلد های که هدر آنها مشخص نشده در یک ستون و با اتصال به هم نمایش داده شود

مثال : نام {علی احمدی} سن{26} نام پدر {رضا}

veniz2008
جمعه 16 تیر 1391, 12:21 عصر
سلام، اونایی رو که میخوای به هم متصل شن یه + بینشون بذار، به این صورت :


SELECT Sales.CustomerID as [کد مشتری], Wholesaler.WholesalerName as [نام مشتری], Sales.SaleID as [شماره فاکتور] Products.ProductName+ Products.Carat+ Sales.Quantity+Sales.Weight

mohamadlvs
جمعه 16 تیر 1391, 12:53 عصر
این خطا رو میده

Conversion failed when converting the nvarchar value 'انگشتر' to data type int.

veniz2008
جمعه 16 تیر 1391, 12:57 عصر
شما نمیتونید کلمه انگشتر رو که از نوع رشته ای هست ( nvarchar ) به نوع int تبدیل کنید. ورودی مناسب به برنامه بدید.

mohamadlvs
جمعه 16 تیر 1391, 13:01 عصر
فقط موقعی که + رو گذاشتم این خطا رو داد . وگرنه کوئریم در حالت معمولی جواب می ده و در گرید نمایش داده می شه

veniz2008
جمعه 16 تیر 1391, 13:06 عصر
شما این فیلدها رو با چه روشی توی گرید نمایش میدی؟(منظورم اینه که از چندتا جدول داری اطلاعات میگیری و درون گرید نمایش میدیف از چه روشی استفاده میکنی؟).
اینو امتحان کن:

SELECT Sales.CustomerID as [کد مشتری], Wholesaler.WholesalerName as [نام مشتری], Sales.SaleID as [شماره فاکتور] ,Products.ProductName+ Products.Carat + Sales.Quantity,Sales.Weight

mohamadlvs
جمعه 16 تیر 1391, 13:12 عصر
از سه تا جدول

da = new SqlDataAdapter("SELECT Sales.CustomerID as [کد مشتری], Wholesaler.WholesalerName as [نام مشتری], Sales.SaleID as [شماره فاکتور], Sales.SaleDate as [تاریخ]," +
" Products.ProductName+Products.Carat+Sales.Quantity +Sales.Weight" +
" FROM Wholesaler INNER JOIN" +
" Sales ON Wholesaler.WholesalerID = Sales.CustomerID INNER JOIN" +
" Products ON Sales.ProductID = Products.ProductID", con);

DataTable dt=new DataTable();
con.Open();
da.Fill(dt);
con.Close();
grdPreview.DataSource = dt;
productName از نوع رشته است
و اونای دیگه از نوع int , double هستند
فقط موقعی که می خوام رشته رو به عدد اتصال بدم خطا میده و در ضمن علامت + اون مقادیر رو به هم اتصال نمیده و آنها رو با هم جمع می کنه!

veniz2008
جمعه 16 تیر 1391, 13:26 عصر
اینطوری بنویس:

da = new SqlDataAdapter("SELECT Sales.CustomerID as [کد مشتری], Wholesaler.WholesalerName as [نام مشتری], Sales.SaleID as [شماره فاکتور], Sales.SaleDate as [تاریخ], Products.ProductName+Products.Carat+Sales.Quantity +Sales.Weight FROM Wholesaler INNER JOIN Sales ON Wholesaler.WholesalerID = Sales.CustomerID INNER JOIN Products ON Sales.ProductID = Products.ProductID", con);

mohamadlvs
جمعه 16 تیر 1391, 13:30 عصر
همین طوری نوشتم دیگه! با این حال بازم همین کد رو کپی کردم نشد! ممنومم

omid_csh
جمعه 16 تیر 1391, 15:35 عصر
سلام
فکر کنم منظورتون همین باشه!
ستون هایی که عددی هستن رو تبدیل به کاراکتری کنید.
SELECT Products.ProductName + ' ' + Convert(Nvarchar(30), [Order Details].UnitPrice * [Order Details].Quantity)
FROM Products INNER JOIN
[Order Details] ON Products.ProductID = [Order Details].ProductID