DataGridView에 데이터가 많이 있고 검색 텍스트 상자가 있습니다. 내 문제는 내가 datagridview 행을 필터링 할 때 검색 데이터에 따라 소계 레이블을 변경하려고하지만 쿼리로 소계 SUM을 선택하기 때문에 수행 할 수 없습니다.텍스트 상자를 사용하여 datagridview를 검색하는 동안 레이블에 합계를 표시하는 방법
SqlConnection con = new SqlConnection(str);
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("Select Invoice_no,Date_of_Sale,Customer_Name,Contact,Item_Code,Item_Name,Quantity,Selling_Price,Discount,Paid_Amount,Remaining,Sub_Total,Total From Sales_Order Order By Invoice_no", con);
DataTable dt = new DataTable();
sda.Fill(dt);
dgv.DataSource = dt;
DataView dv = new DataView(dt);
dv.RowFilter = string.Format("Item_Name LIKE '{0}%' ", Search_By_ItemName.Text);
dgv.DataSource = dv;
모든 일이 잘 작동하지만 변화하지 소계 텍스트 내 소계 레이블 텍스트를 변경하려면 필터에있어서, 여기
내 소계 라벨 코드SqlConnection con = new SqlConnection(str);
con.Open();
string query = "SELECT SUM(Sub_Total) from (SELECT distinct Sub_Total FROM Sales_Order) as Sales_Order";
using (SqlCommand command = new SqlCommand(query, con))
{
object result = command.ExecuteScalar();
Sub_Tot.Text = Convert.ToString(result); ;
}
con.Close();
텍스트 상자의 TextChanged 코드 검색 필터에 따라 어떻게 가능합니까?
참고 :이 타이머를 사용하여 완벽하게 작동하고하지만 난 타이머를 사용하지 않으
int sum = 0;
for (int i = 0; i < Sale_Order_Grid.Rows.Count; i++)
{
sum += Convert.ToInt32(Sale_Order_Grid.Rows[i].Cells[8].Value);
}
this.lbl_SubTotal.Text = sum.ToString();
대신 DataTable을 통해 검색하십시오. – jdweng
@jdweng 어떤 코드예요? – Usama
다음과 같이 List searchRows = dt.AsEnumerable(). 여기서 x => x.Field ("Customer_Name") == Search_By_ItemName.Text) .ToList(); int sum = searchRows.AsEnumerable(). Sum (x => x.Field ("Paid_Amount")); –
jdweng