このコードに変換してLINQに変換し、データグリッドビューにプレビューすることはできません。SQLコードをLINQに変換 - グループ化および合計
私はthisの答えを見てきましたが、それはあなたが基本的に2つのテーブルを結合する必要が
このコードに変換してLINQに変換し、データグリッドビューにプレビューすることはできません。SQLコードをLINQに変換 - グループ化および合計
私はthisの答えを見てきましたが、それはあなたが基本的に2つのテーブルを結合する必要が
をLINQするためにこのコードを変換するために私を助けてください、私に
select tbl_user.id,tbl_user.name,tbl_user.family, sum(tbl_price.price)
from tbl_user,tbl_price
where tbl_user.id=tbl_price.user_id_fk
group by tbl_user.name+''+tbl_user.family,tbl_user.id,tbl_user.name,tbl_user.family
を助けていない、でグループの結果をUserIdと ユーザーの各アイテムのPriceプロパティ値のSum
メソッドを呼び出します。この
var usersWithTotalPrice = (from a in db.Users
join b in db.UserPrice on a.UserId equals b.UserId
select new { UserId = a.UserId,
FamilyName = a.Name + " " + a.FamilyName,
Price = b.Price}
).GroupBy(f => f.UserId, items => items, (a, b) => new
{
UserId = a,
FamilyName = b.FirstOrDefault().FamilyName ,
Price = b.Sum(g=>g.Price)
}
).ToList();
usersWithTotalPrice
変数のような
何かがUserId
、FamilyName
とPrice
プロパティを持つ項目ごとの集合になります。私は匿名のプロジェクションを使いました。ビューモデルがあれば、それを使うことができます。
public class UserWithPrice
{
public int Id { set;get;}
public string FamilyName { set;get;}
public decimal Price { set;get;}
}
および突起部に
var usersWithTotalPrice = (from a in db.Users
join b in db.UserPrice on a.UserId equals b.UserId
select new { UserId = a.UserId,
FamilyName = a.Name + " " + a.FamilyName,
Price = b.Price}
).GroupBy(f => f.UserId, items => items, (a, b) =>
new UserWithPrice
{
Id = a,
FamilyName = b.FirstOrDefault().FamilyName ,
Price = b.Sum(g=>g.Price)
}
).ToList();
は、あなたの定義に基づいて、あなたのエンティティ/ Dbset /プロパティ名を更新することを使用します。
ありがとうございます。正解は – user6805346
これにはlinqを使用する必要はありません。実際には、datatableを使用して、そのdatatableにgridviewのデータソースを設定することができます。
public void LoadData()
{
DataTable dt = new DataTable();
using (var conn = new SqlConnection("your connection string here"))
{
using (var cmd = conn.CreateCommand())
{
conn.Open();
//set the command up as a select
cmd.CommandText = "select tbl_user.id,tbl_user.name,tbl_user.family, sum(tbl_price.price) "+
"from tbl_user, tbl_price " +
"where tbl_user.id = tbl_price.user_id_fk " +
"group by tbl_user.name + '' + tbl_user.family,tbl_user.id,tbl_user.name,tbl_user.family";
using (SqlDataAdapter a = new SqlDataAdapter(cmd))
{
a.Fill(dt);
}
//set the datasource of the gridview to the loaded table. The gridview will now display the data of your select statement.
dgvActivity.DataSource = dt;
}
}
}
あなたは何をしようとしていますか? – tym32167
自分で試してみて、試したことがうまくいかないものを元に戻してください... https://stackoverflow.com/questions/12238423/linqpad-convert-sql-to-linq-command –
私は各顧客の購入をしたい数量は – user6805346