2011-11-12 3 views
0

새내기 여기 다시. 데이터베이스에서 웹 서비스 정보를 호출하여 검색하는 C#의 양식이 있습니다. 하나의 필드는이 클라이언트에 관한 "메모"입니다. 양식은 Notes 필드에 여러 줄을 허용하지만 줄 바꿈을 인식하지 못합니다 (데이터베이스에 웹 서비스를 통해 보내면 저장합니다). 줄 바꿈을/r/n/(맞습니까?) 코드로 바꾸려면 어떻게해야합니까? 다음 번에 데이터베이스에서 검색 할 때 메모 필드에 표시하는 방법을 알 수 있습니까?데이터베이스에 다시 보낼 때 r n으로 줄 바꿈 바꾸기

이것은 현재 작동하지 않는 코드입니다. 당신은 SQL 서버에 여러 줄의 텍스트를 저장하는 경우에는 다음 예를 들어 귀하의 사용자 정의 개행 문자 지정자와 캐리지 리턴을 대체

var stringToInsert = txtNotes.Text.Replace("\n", "\r\n"); 
+1

['String.Replace (String, String)'] (http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx)에서 방황하십시오? 나는 ['Regex.Replace'] (http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.replace%28v=VS.100%29.aspx) 자신을 좋아하지만, 똑같은, 정말로. –

+1

@IzzyG, 코드가 작동하지 않는 이유는 텍스트 상자 컨트롤의 Text 속성이 foreach 루프에 필요한 인터페이스 인 IEnumerable을 지원하지 않기 때문입니다. 데이터를 웹 서비스의 데이터베이스에 저장하는 코드를 게시 할 수 있습니까? 매개 변수화 된 저장된 proc IMHO를 사용하면 캐리지 리턴/줄 바꿈 문제를 해결할 수 없습니다. 또한 Customer.Note의 값이 Length> 0 인 경우 if 문으로 넘어 가지 않습니다. –

+0

@JeremyThompson 매개 변수화 된 저장 프로시 저는 질문과 관련이 있습니까? –

답변

3

그냥 할 % NL %

txtNote.Text.Replace(Environment.NewLine, "%NL%"); 

때 데이터베이스 필드에서 검색 한 다음 신의 접근 방식을 따르십시오.

MasterRecord.Customer.Notes.Replace("%NL%", Environment.NewLine); 

당신이 내가 ..이 webserivce를 ACESS하여 다른 플랫폼에 대한 확인 .. 다음 .NET 플랫폼에서 모두 확인을하고 있지 않다 액세스

그것은 작동하지만 그것은 저장 응용 프로그램을 통해 데이터를 처리하는 트릭 % NL 인 경우 필드 값의 %.

0

:

 if (MasterRecord.Customer.Notes.Trim().Length < 1) 
     { 
      string s = ""; 
      foreach (object o in txtNotes.Text) 
      { 
       s += o.ToString() + ("\r\n"); 
      } 
     } 
+0

작동합니다! 감사! 실제 데이터베이스에서 "% NL %"등을 볼 수없는 이유가 있습니까? 그것은 숨겨져있다, 왜냐하면 내가이 응용 프로그램을 실행하는 컴퓨터의 모든 유형에서 작동하지 않거나이 isnt 데이터베이스에 줄 바꿈을 저장하는 가장 좋은 방법은 작동하지 않을 경우 나는 줄 바꿈이있는 필드 내용을 복사 할 때, ? –

+0

나는 그것을 데이타베이스에서 보았습니다, 미안 해요. 잘못 입력 한 필드가 있습니다. 어쨌든, 더 좋은 방법이 있다면 누구나 알 수 있습니까? 나는이 작품을 알고 있지만 항상 최선의 방법을 확인하기 위해 찾고, 내가 사용하는 몇 가지 알아/연구/n은? –

+0

메신저가 예외를 얻는다면 폼을 열면 새로운 사용자가 –