Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用c将包含逗号的sql列作为一个字段读取#_C#_Sqldatareader - Fatal编程技术网

C# 如何使用c将包含逗号的sql列作为一个字段读取#

C# 如何使用c将包含逗号的sql列作为一个字段读取#,c#,sqldatareader,C#,Sqldatareader,我有一个sql08数据库表,我正在用C#读取它。其中一列(学院)包含数据,其中一些数据带有逗号:Miami,FL或Miami,OH,而另一些则没有:USC。My output.csv将包含逗号的行中的数据向右移动一列。我希望我的输出包含一个字段:迈阿密,佛罗里达州而不是|迈阿密|佛罗里达州 myWriter.WriteLine("Player, Position, Current Team, College"); SqlDataReader myReader = null; SqlCommand

我有一个sql08数据库表,我正在用C#读取它。其中一列(学院)包含数据,其中一些数据带有逗号:
Miami,FL
Miami,OH
,而另一些则没有:
USC
。My output.csv将包含逗号的行中的数据向右移动一列。我希望我的输出包含一个字段:
迈阿密,佛罗里达州
而不是
|迈阿密|佛罗里达州

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

你可以在这里找到答案

基本上,您需要转义“,”字符。您可以使用“”来执行此操作

这里有CSV格式的规范


尝试将值放在双引号内:

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

通常在.CSV中,如果字符串包含逗号,则用双引号将字段括起来

因此,迈阿密,佛罗里达在.CSV文件中变为“迈阿密,佛罗里达”

所以你可以做一些像

string myCollege = "";

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

请使用另一个分隔符。非常感谢。这正是我所需要的。