MYSQL C #에서 DataGridView 셀을 채우는 방법은 무엇입니까?

user6871421

4-5 열의 DataGridView가 있습니다.
DataGridView는 편집 가능합니다.
참조 열에 값을 입력하면 즉시
mysql 데이터베이스의 다른 셀에있는 다른 값 채 웁니다 .
이것이 제가 시도한 것입니다 ....

private void TAB_Credit_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {

            try
            {
                if (TAB_Credit.CurrentCell.ColumnIndex == 0)
                {

                    MySqlDataAdapter sa = new MySqlDataAdapter("SELECT * FROM table WHERE Reference='" + TAB_Credit.Rows[e.RowIndex].Cells["Reference"].Value + "'", MyConnexion);
                    DataTable dt2 = new DataTable();

                    sa.Fill(dt2);

                        double value = (double)TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value * (double)TAB_Credit.Rows[e.RowIndex].Cells["PU"].Value;

                        TAB_Credit.Rows[e.RowIndex].Cells["Designation"].Value = dt2.Rows[0]["Designation"].ToString();
                        TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value = dt2.Rows[0]["Quantite"].ToString();
                        TAB_Credit.Rows[e.RowIndex].Cells["PU"].Value = dt2.Rows[0]["Prix_Unitaire"].ToString();
                        TAB_Credit.Rows[e.RowIndex].Cells["Total"].Value = value.ToString();


                    }

            }
            catch
            { }
        }

따라서 데이터 그리드에서 참조 셀에 삽입하면 다른 셀에는 아무것도 나타나지 않습니다. 감사합니다.

스티브

코드에는 두 가지 이상의 즉각적인 문제가 있습니다.

  • 첫째 : 빈 try / catch 블록을 작성하지 마십시오. 잘못된 일이 발생하면 절대 알 수 없습니다. 예외가 있는지 제거하고 확인하십시오.
  • 둘째 : 누군가가 1 '; DROP TABLE References;-in your cell을 입력하면 어떻게 될 것이라고 생각하십니까? 하지마 이거

이제 빈 catch를 제거한 후 값 (quantity * PU)을 곱하려고 할 때 잘못된 캐스트 예외로 인해 문제가 발생했음을 알 수 있습니다. 이 문제는 셀에서 나오는 두 개체 값의 적절한 변환으로 해결되어야합니다.

double qty = Convert.ToDouble(TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value);
double pu = Convert.ToDouble(TAB_Credit.Rows[e.RowIndex].Cells["PU"].Value);
double value = qty * pu;

그러나 이러한 셀을 사용자가 직접 입력하면 Convert.ToDouble에도 단점이 있습니다. 입력이 "ABC"와 같은 경우 예외가 발생합니다. 이 경우 double.TryParse를 사용하고 입력이 유효한 double이 아닌 경우 사용자에게 메시지를 제공합니다.

double qty;
if(!double.TryParse(TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value.ToString, out qty))
{
   MessageBox.Show("Invalid input for quantity");
   return;
}

마지막으로 매개 변수화 된 쿼리를 사용하여 SQL 주입 취약점을 수정해야합니다.

string cmdText = @"SELECT * FROM table 
                   WHERE Reference=@ref"
MySqlDataAdapter sa = new MySqlDataAdapter(cmdText, MyConnexion);
sa.SelectCommand.Parameters.Add("@ref", MySqlDbType.VarChar).Value = 
        TAB_Credit.Rows[e.RowIndex].Cells["Reference"].Value.ToString();

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

다른 양식에서 datagridview 셀을 채우는 방법은 무엇입니까? 씨#

C ++에서 std :: string을 채우고 채우는 방법은 무엇입니까?

DataGridView의 WindowsForm C #에서 합격률을 찾는 방법은 무엇입니까?

C #의 DataGridview에서 새 행을 추가하는 방법은 무엇입니까?

C #에서 튜플을 채우는 방법은 무엇입니까?

C #에서 배열을 채우는 방법은 무엇입니까?

C #에서 셀에 0 값이 포함되어있을 때 일부 텍스트를 datagridview 셀에 설정하는 방법은 무엇입니까?

C에서 0으로 2D 행렬을 채우고 채우는 방법은 무엇입니까?

VBA에서 셀의 색상을 채우는 방법은 무엇입니까?

C # Windows 양식에서 DataGridView를 지우는 방법은 무엇입니까?

MVP 프로젝트에서 DataGridView를 채우는 방법은 무엇입니까?

C #에서 편집 할 때와 편집 한 후에 DataGridView 셀 형식을 설정하는 방법은 무엇입니까?

뷰에서 점을 채우는 방법은 무엇입니까?

enumarations에서 memtable을 채우는 방법은 무엇입니까?

데이터의 조건에 따라 mysql에서 열을 채우는 방법은 무엇입니까?

데이터의 조건에 따라 mysql에서 열을 채우는 방법은 무엇입니까?

checkListBox C #에서 같은 줄에 두 문자열을 채우는 방법은 무엇입니까?

datagridview c #에서 비트 데이터 유형 열을 포맷하는 방법은 무엇입니까?

C # DataGridView를 통해 양식에서 양식으로 값을 전달하는 방법은 무엇입니까?

Mysql 데이터베이스에서 확인란을 채우는 방법은 무엇입니까?

mySQL 테이블에서 세 번째 열을 채우는 방법은 무엇입니까?

Mysql 데이터베이스에서 확인란을 채우는 방법은 무엇입니까?

MySQL에서 증분 정수로 열을 채우는 방법은 무엇입니까?

가장 효율적인 방법으로 DataGridview에서 생성된 열을 채우는 방법은 무엇입니까?

C # Winform에서 곡선 영역을 색상으로 채우는 방법은 무엇입니까?

C에서 문자로 2 차원 배열을 채우는 방법은 무엇입니까?

C의 텍스트 파일에서 행렬 (구조체)을 채우는 방법은 무엇입니까?

c에서 자연수로 배열을 채우는 방법은 무엇입니까?

DataGridView의 한 열에 두 개의 mysql 테이블 열을 추가하는 방법은 무엇입니까?

TOP 리스트

  1. 1

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  2. 2

    상황에 맞는 메뉴 색상

  3. 3

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  4. 4

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  5. 5

    std :: regex의 일관성없는 동작

  6. 6

    Ionic 2 로더가 적시에 표시되지 않음

  7. 7

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  8. 8

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  9. 9

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  10. 10

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  11. 11

    SQL Server-현명한 데이터 문제 받기

  12. 12

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  13. 13

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  14. 14

    내 페이지 번호의 서식을 어떻게 지정합니까?

  15. 15

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  16. 16

    Quickly 프로그램과 함께 작동하도록 Eclipse를 어떻게 설정할 수 있습니까?

  17. 17

    인코더없이 Azure 미디어 서비스 비디오 트림

  18. 18

    WSL 및 Ubuntu, 초기화 파일 이동 방법

  19. 19

    OpenCV에서. C ++ 컴파일러는 간단한 테스트 프로그램을 컴파일 할 수 없습니다. Clang ++ 사용

  20. 20

    마우스 휠 JQuery 이벤트 핸들러에 대한 방향 가져 오기

  21. 21

    ViewModel에서 UI 요소를 비동 시적으로 업데이트하는 방법

뜨겁다태그

보관