3

C#で読んでいるsql08データベーステーブルがあります。列の1つ(College)には、一部のデータにコンマが含まれているデータが含まれています:Miami, FLまたはMiami, OH、一部のデータには含まれていません:USC。出力.csvは、行を含むコンマから1列右にデータをシフトします。出力をMiami,FL1つのフィールドとして含めたい:|Miami,FL||Miami| |FL|

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);
}
4

3 に答える 3

3

あなたはここで答えを見つけることができます

CSVファイルのコンマの処理

基本的に、「、」文字をエスケープする必要があります。あなたはそれをするために''を使うことができます

ここにCSV形式の仕様があります

https://www.rfc-editor.org/rfc/rfc4180

于 2013-02-21T16:27:08.743 に答える
2

値を二重引用符で囲んでみてください。

myWriter.WriteLine("\"{0}\", \"{1}\", \"{2}\", \"{3}\",", myPlayer, myPosition, myCurTeam, myCollege);
于 2013-02-21T16:27:12.797 に答える
1

通常、.CSVでは、文字列にカンマが含まれている場合は、フィールドを二重引用符で囲みます。

したがって、フロリダ州マイアミは、.CSVファイルで「フロリダ州マイアミ」になります。

だからあなたは次のようなことをすることができます...

string myCollege = "";

if(myReader.GetString(3).Contains(","))
 {
    myCollege = "\"" + myReader.GetString(3) + "\"";
 }
else
 {
    myCollege = myReader.GetString(3);
 }
于 2013-02-21T16:29:26.130 に答える