2014-06-12 1 views
0

MS Access 데이터베이스 파일에 다양한 데이터를 저장하고이를 dataGridView에 채 웁니다. 열 중 하나는 파일 위치를 저장하는 필드입니다. 나는, 데이타베이스 파일을로드하면 이제 내가 디버그 시계 창을 검사 할 때 내가 string Location이라고DataGridView에서 데이터베이스의 이스케이프 문자로 파일 경로 가져 오기 DataRow

foreach (DataRow row in dataTable.Rows) 
{ 
    string Location = row["file_location"].ToString(); 
} 

을 볼 수 있습니다 다음 사용하여 검색하려고

D:\test\1.txt 

으로 나는 그것이 저장되어 볼 수 있습니다 사실 D:\\test\\1.txt 이제는 \을 이스케이프 문자로 추가하는 것을 이해하지만 내 string Location을 실제로 이스케이프 된 경로가 아닌 올바른 경로로 유지하는 방법을 잘 모르겠습니다.

두 가지 방법으로 축 어적 문자열 리터럴을 추가하려고 시도했지만 데이터베이스 파일에서 이미 가져온 경우 또는 내가 퍼팅하는 경우에도 특히 읽었던 방식으로 효과가 나타나는지 확신하지 못했습니다. 올바른 위치에.

아래 두 옵션을 시도했지만 작동하지 않을 것이라고 확신하지 못했습니다. 그리고 결국에는하지 않았습니다.

string Location = @""; 
Location = row["file_location"].ToString(); 

그리고

string Location = @row["file_location"].ToString(); 

희망 사람이 나를 도울 수 있습니다. 나는 너무 많은 StackOverflow 기사를 읽었고 나는 이해할 수있는 방식으로 나의 특정한 문제를 말하고있는 것을 발견하는 것 같다.

답변

1

축 어적 문자열 (discussed in this stackoverflow question)은 실제로 컴파일 시간 리터럴이고 전혀 유용하지 않다. 값은 런타임에 할당됩니다. 물론

string Location = row["file_location"].ToString().Replace("\\","\"); 

가있을 수 있습니다 더 우아한 방법 : 그것은 당신이 걱정하는 유일한 이스케이프 문자처럼 보이는

은 백 슬래시 그래서 당신의 문제에 매우 빠른 수정이 될 것입니다.

업데이트 : 설명하고있는 바와 같이

, 당신은 아마 시계 창을 이해하지 않습니다. 이 문자열은 실제 값과 관계없이 이스케이프됩니다. 고려 :

static void Main(string[] args) 
    { 
     watchisescaping(); 
     Console.ReadKey(); 
    } 

    static void watchisescaping() 
    { 
     string location = @"c:\dim\bulbs"; 
     Console.WriteLine(location); 
     Console.ReadKey(); 
    } 

시계 창이 c:\\dim\\bulbs로 위치를 표시하지만 그것이 있어야로 콘솔 출력은 c:\dim\bulbs입니다. datagrid에서 문자열을 볼 때 문자열이 실제로 이스케이프되고 있는지 확실합니까?

+0

상수의 개행에 대한 오류가 발생하여이를 다음과 같이 변경했습니다. string replaceWith = @ "\"; 문자열 위치 = 행 [ "file_location"]. ToString(). Replace ("\\", replaceWith); 그러나 디버그 시계는 여전히 이중 backslahes 함께 그것을 보여줍니다 그것을 대체 할 것 같습니다 –

+0

당신의 디버그 시계를 다시 이스케이프 수 있습니다 생각합니다. 내 프로젝트에서 그것을 복제하겠습니다. – clarkitect

+0

그게 좀 실망 스럽네요, 나는 변수를 많이 확인하기 위해 시계에 의존합니다. 내가보고있는 것을 재평가해야 할 것 같아요. 하지만 올바른 파일 위치를 찾지 못해서 코드가 올바르게 작동하지 않는 이유라고 생각했습니다.더 많은 일을해야 할 것 같네요 –

관련 문제