C# 如何使用c将包含逗号的sql列作为一个字段读取#
我有一个sql08数据库表,我正在用C#读取它。其中一列(学院)包含数据,其中一些数据带有逗号: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
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);
}
请使用另一个分隔符。非常感谢。这正是我所需要的。