2011-07-04 4 views
1

은 내가DataGridView에서 열만 유효성을 검사 할 수없는 이유는 무엇입니까? 내가 C#을 에서 윈도우 폼 프로젝트를하고있는 중이 야

지금 내가 데이터의 GridView에서 편집을 수행 할 데이터베이스에서 데이터와 DataGridView에 있고, 나는이 칼럼 호출 이름을 가지고 있지만 나는 유효성을 검사 할 그래서 사용자가 편집 할 때, 예를 들어, Name 열만 1에 이름이 붙은 Rosy Chin을 입력 한 다음이 Rosy Ch11n을 사용자가 편집합니다. 사용자가 알파벳 만 입력하면 아래의 코드를 사용하지만 메시지를 표시하지는 않습니다 ... 그러나 사용자가이 4Rosy Chin으로 편집하는 경우 .... 프롬프트 메시지가 나타납니다 ... 내가 잘못 알 수 있습니까?

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) 
{ 
    if (e.RowIndex >= 0 && e.ColumnIndex >= 0) 
    { 
     //int indicator; 
     int newInteger; 

     if (e.ColumnIndex == 1) 
     { 
      if (dataGridView1.Rows[e.RowIndex].IsNewRow) return; 
      String data = e.FormattedValue.ToString(); 

      String validate= @"^[a-zA-Z]"; 
      Regex nameAlphabet = new Regex(validate); 
      String nameGridView = data;     
      if(!(nameAlphabet.IsMatch(nameGridView))) 
      { 
       e.Cancel = true; 
       MessageBox.Show(@"Name must be in Alphabet!"); 
      } 
      else 
       return; 
     } 
} 

답변

2

시도는 정규식을 수정합니다 :

^[a-zA-Z ]+$ 

설명 :

^ start of line 
[a-zA-Z ] any letter or space 
+ one or more 
$ end of line 

좋은 정규식 sandbox. sandbox

^[A-Za-z][a-zA-Z ]+[A-Za-z]$ 

링크 :


는 유일의 공간을 허용하지합니다.

+0

을 다음과 같이 공간이 textbox 시작 여부 – cutexxxpies

+0

@Cute : 예, 표현식을 my로 변경하고 – abatishchev

+0

@abatishchew ...을 테스트합니다. 열린 반전 쉼표는 어디에 있습니까? 그리고 @ ?? 그리고 당신의 대답은 아래의 답과 비슷합니다. – cutexxxpies

0

하지 않으면 같은 당 아래

Regex nameAlphabet = new Regex(@"^[a-zA-Z\s]+$"); 

당신은 공간보다 큰 1 경우, 또는 텍스트 상자에 공간의 수를 확인하여 프로 문법적으로 할 수있는 텍스트 상자가 빈 공간으로 시작하는 경우 당신은 당신을 t 수있는 유사한 방법으로

int cnt = 0; 
    while (TextBox1.Text.Contains(" ")) 
    { 
     cnt++; 
     if (cnt > 1) 
     { 
      MessageBox.show("Only a space is allowed"); 
      break; 
     } 
    } 

을 확인

코드에서 이것을 시도는

을 요구 필요한 메시지 상자를 올릴 수 동부 표준시 내가 정규식 좋은 당신이 내가 그것을 ?? 무엇을 변경해야 나에게 정규식을 말해 주시겠습니까하지 @abatishchew

if(textbox.text.startswith(" ")) 
{ 
    // Your message 
} 
+0

@ 도라ababu ... 나는 당신의 코드를 사용하려하지만, 문제는 상관 없다. 나는 장미 빛 Ch4n 또는 장미 빛 Ch4n을 타이프한다. .. 그것은 나에게 아직도 프롬프트한다. .. 그래서 어떻게? – cutexxxpies

+0

답변을 편집했습니다 내가 당 – Dotnet

+0

게시 문제를 다시 ... 간격을 눌러보십시오 ... 이름을 위해 ... 그것은 여전히 ​​나를 통과시켜 ... 그래서 어떻게 내가 그것을 변경해야합니까 – cutexxxpies

관련 문제