2013-02-21 3 views
3

나는 C#으로 읽는 sql08 데이터베이스 테이블을 가지고 있습니다. 열 (대학) 중 하나에 쉼표가있는 데이터가 포함되어 있습니다 (예 : Miami, FL 또는 Miami, OH). 일부는 아니요 : USC. 내 출력 .csv는 쉼표를 포함하는 행의 데이터를 한 열만 추가로 이동합니다. 내 출력은 하나 개의 필드로 Miami,FL를 포함하고 싶습니다 : |Miami,FL|하지 |Miami| |FL|C에서 하나의 필드로 쉼표를 포함하는 sql 열을 읽는 방법 #

myWriter.WriteLine("Player, Position, Current Team, College"); 
SqlDataReader myReader = null; 
SqlCommand myCommand = new SqlCommand("Select * FROM FootballRoster", myConnection); 

myReader = myCommand.ExecuteReader(); 
while (myReader.Read()) 
{ 
    string myPlayer = myReader.GetString(0); 
    string myPosition = myReader.GetString(1); 
    string myCurTeam = myReader.GetString(2); 
    string myCollege = myReader.GetString(3); 

    myWriter.WriteLine("{0}, {1}, {2}, {3},", myPlayer, myPosition, myCurTeam, myCollege); 
} 
+0

를 사용하여 또 다른 구분 ... 뭔가를 할 수 있습니다. –

답변

2

따옴표로 값을 넣어보십시오 CSV 형식에 대한 사양 :

myWriter.WriteLine("\"{0}\", \"{1}\", \"{2}\", \"{3}\",", myPlayer, myPosition, myCurTeam, myCollege); 
+0

고마워요. 이것은 내가 필요로했던 것과 똑같다. – krb010301

1

을 일반적으로 .CSV에, 문자열에 쉼표가 포함되어 있으면 큰 따옴표로 묶습니다.

마이애미 플로리다는 .CSV 파일에서 "Miami, FL"이됩니다.

그래서 당신은

string myCollege = ""; 

if(myReader.GetString(3).Contains(",")) 
{ 
    myCollege = "\"" + myReader.GetString(3) + "\""; 
} 
else 
{ 
    myCollege = myReader.GetString(3); 
} 
관련 문제