C#.NET Q&A

CellValueChanged 이벤트 수량*단가 금액계산 고재원 평점: 없음 조회: 202
<값 불러오기>
 
adoCon = new SqlConnection(strConnectionString);
    adoCon.Open();
 
    cmd = new SqlCommand("SALES_P_V1", adoCon);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@PJTNO", this.txtPJTNO.Text.Trim());
 
    adoDa = new SqlDataAdapter();
    adoDa.SelectCommand = cmd;
 
    adoDs = new DataSet();
    adoDa.Fill(adoDs, "SALES_T");
 
    SalesGV.DataSource = adoDs.Tables[0];
 
 
 
 
 
 
수량, 단가를 수정하면 금액이 자동 계산되게 하고 싶어서
 
 
 
private void SalesGV_CellValueChanged(object sender, DataGridViewCellEventArgs e)
  {
   for (int i = 0; i <= e.RowIndex; i++)
   {
     //수량
     if ((string)SalesGV.Rows[i].Cells[9].Value.ToString() == "")
     {
      SalesGV.Rows[i].Cells[9].Value = 0;
     }
 
     //단가
     if ((string)SalesGV.Rows[i].Cells[10].Value.ToString() == "")
     {
      SalesGV.Rows[i].Cells[10].Value = 0;
     }
 
     //금액
     if ((string)SalesGV.Rows[i].Cells[9].Value.ToString() != "" || (string)SalesGV.Rows[i].Cells[10].Value.ToString() != "")
     {
      SalesGV.Rows[i].Cells[11].Value = Convert.ToInt32(SalesGV.Rows[i].Cells[9].Value) * Convert.ToInt32(SalesGV.Rows[i].Cells[10].Value)); <--에러발생
 
     }
 
     //VAT
     if ((string)SalesGV.Rows[i].Cells[12].Value.ToString() == "")
     {
      SalesGV.Rows[i].Cells[12].Value = 0;
     }
 
     //합계
     if ((string)SalesGV.Rows[i].Cells[13].Value.ToString() == "")
     {
      SalesGV.Rows[i].Cells[13].Value = 0;
     }
 
   }
  } 
 
태그 : C#질문
작성자 정보
고재원
Level 3
 [EXP.11/16]

메일:  비공개

글등록 +12 24 덧글등록 +3 3
자기소개
글 공유하기 |
  tweet facebook
2019-01-03 오후 3:21:52
나도한마디
사용자
제스            [2019-01-03]
Level 25
 [EXP.1/50]
반복문을 돌리시는 이유는 무엇인가요?

dataGridView1.Rows[e.RowIndex].Cells[2].Value = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value) * Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[1].Value);
간단하게 한줄이면 끝나는 작업같은데 추가작업이 필요한가요?
사용자
제스            [2019-01-03]
Level 25
 [EXP.1/50]
여러줄이 있다고 가정을해도요 질문하신건 수량,단가 변경됐을때에 계산법인데
수량,단가를 datagridview에서 직접적으로 수정을 하시는거에요 아니면 어디서 긁어와서 한번에 리스트업하시는거에요? 뭐하고싶어요 소스딱 이렇게 해버리시면 답변해드리기가 어렵네요
사용자
고재원            [2019-01-03]
Level 3
 [EXP.11/16]
1. 일단 DB에서 값을 조회 합니다. (한줄 혹은 여러줄)
2. 불러온 값을 CellValueChanged 이벤트를 통해 수량 혹은 단가를 수정합니다.
3. 불러온 데이터그리드뷰 화면에서 금액을 다시 집계하려고 합니다.

참고로 아래 보내주신 소스를 화면 데이터그리드뷰 헤더 값이 없어 DB에서 불러온 값을 찍어주는데
e.RowIndex 값이 -1 부터 시작합니다.
여러줄일 경우 해당 row값을 찾아 수정해 줘야 해서 반복문을 사용한 겁니다.
사용자
제스            [2019-01-03]
Level 25
 [EXP.1/50]
cellvaluechanged 이벤트를 통해 수량 혹은 단가를 수정합니다. 라는 말은
작업단계가 결국 한줄단위로 진행하시는거 아닌가요? 그렇게 되면 결국엔 제가 처음에 올려드렸던대로 e.Rowindex를 사용하시면 현재 선택 즉 수정중인 Row라인만 이벤트가 일어나 자동으로 계산이 됩니다. 반복문은 필요없구요 e.Rowindex가 -1값부터 진행하는건 관계가없어보입니다. try/catch로 묶으시면 정상진행됩니다.
태그로 엮인글
[C#.NET Q&A] C# 폴더생성 문제[4]  훈쓰쓰훈
[C#.NET Q&A] 윈폼 Datagridview 에서 엑박(redbox) 나는 이유가 뭘까요... [2]+2  밍님
[C#.NET Q&A] 소스코드 내에 있는 DB 접속정보를 보호할 방법이 있을까요? [2]+2  ofone
[C#.NET Q&A] 혹시 32비트로 빌드된 dll을 64비트 환경에서 호출할수있을까요..?[1]  저런
[C#.NET Q&A] StreamWriter로 텍스트 파일 저장할때 최신글이 위로 저장하는 옵션이 잇나요??[1]  오하우하
[C#.NET Q&A] c# 엑셀 프로세스 죽이기[2]+2  푸풍
[C#.NET Q&A] 자식폼 데이터그리드뷰 특정 컬럼 값을 부모품 텍스트 박스에 넣기[2]  고재원
[C#.NET Q&A] xml파일생성관련하여 질문드립니다(xml내용 작성법)[3]  맨살링
[C#.NET Q&A] c# 윈폼 해상도 질문이 있습니다...[1] 파일첨부 이재추닝
[C#.NET Q&A] C# 달력질문입니다.[1]  dmekk
글리스트
TFS 2013 관련 질문  Windy
슬라이더 값에 따른 rawimage 출력 파일첨부 착한어른이
xml파일생성관련하여 질문드립니다(xml내용 작성법)[3]  맨살링
c# 윈폼에서 차트를 그리려 하는데[1]  엘리엇
C# graphics 객체 선택   메론빵맨
사용자 콘트롤 속도 문제.  hoon
for 문에서 간단하 로직 질문드려요.[1]  키쿄쿄쿄키쿗
C# Winform의 Virtual, Override 관계 문의[2]+4 파일첨부 고무랭이
c# 윈폼 해상도 질문이 있습니다...[1] 파일첨부 이재추닝
c# 에서 OnPaint가 호출되지 않는데요...  csharpmas
 ★현재글->   CellValueChanged 이벤트 수량*단가 금액계산[2]+2  고재원
C# 달력질문입니다.[1]  dmekk
프로그램 처리 방법 질문드립니다.[1]  jellyfish
cs 페이지에서 값 확인[1]  훈쓰쓰훈
한영전환오류[1]  비베씨샾
C# 엑셀리딩관련 질문드립니다.  suraits
datagridview 에러입니다.[2]+1 
c# WPF 사이즈 조절 이벤트 관련 질문입니다.[1]  오마르
FTP 연결이 잘 안됩니다.  빠라밤바
폼 showdialog 처럼 메세지박스도 가능한가요?[2]  엘리엇
c#으로 mysql 테이블 행 개수를 나타내는방법[1]  합금방패