قراردادن یک ستون بجای نام پیش فرض
سلام
فرض کنید
select id,count(Price) as [pricecount] ,name from test group by id,name
است
اما من می خواهم بجای pricecount نام یک ستون دیگری را بگذارم مثلا
select id,count(Price) as (select name from test2 where id='2') ,name from test group by id,name
اما درعمل ایراد میگرد برای حل این مشکل چه راهی وجود دارد
باتشکر
6 پاسخ
دوستان عزیز اینجا انجمن بانک اطلاعاتی است نه برنامه نویسی. لطفا این سوال را به انجمن مربوطه انتقال دهید.
با تشکر
باسلام و تشکر از لطف شما
private void Form1_Load(object sender, EventArgs e) { var db = new DataClasses1DataContext(); radGridView1.DataSource = db.S_test().ToArray(); }
من اینگونه دادها را داخل دیتاگرید پر میکنم اما با spمورد نظر ToArray ندارد
کدی که استفاده می کنی رو بزار ببینم چجوری Bind می کنی.
یه نکته ای که وجود داره شما نمیتونید به این صورت خروجی رو دریافت کنید. به خاطر اینکه نام Column به صورت Dynamic انتخاب میشه و نمیشه Entity رو Map کرد. شما به صورت مستقیم و با کلاس SqlCommand کوئری رو اجرا کنید و خروجی که یک DataReader هست رو داخل یک Entity دلخواه قرار بدید، بعد لیست ایجاد شده رو به DataGrid بایند کنید:
public class Entity { public int Id {get;set;} public int DynamicPrice {get;set;} public string Name {get;set;} }
برای ایجاد لیست:
var entities = new List<Entity>(); var connection = new SqlConnection("cnnString"); var command = new SqlCommand("query",connection); var reader = command.ExecuteReader(); while(reader.Read()) { // create list here } radGridView1.DataSource = entities;
سلام
مهندس جان وقتی حال این جواب را چگونه می توانیم در دیتاگرید نمایش بدهیم
چون قابل تبدیل به ToArray نیست ؟
باتشکر
سلام، کاری که شما می خواهید انجام بدید به صورت مستقیم وجود نداره، کاری که می تونید انجام بدید ایجاد یک دستور select به صورت dynamic و قرار دادن اون داخل یک متغیر و اجرای متغیر هست:
declare @colname nvarchar(max) = N'select id,count(Price) as ['+(select name from test2 where id='2') + '] ,name from test'; exec sp_executesql @colname