C# For循环返回的信息在我放入break语句时不应该是这样的

C# For循环返回的信息在我放入break语句时不应该是这样的,c#,sql,C#,Sql,我试图从一个SQL数据库中检索信息,该数据库具有类型a、B和C,例如 COL1 COL2 A X A X A X A X A X B X B X B X C X C X C X 我有以下代码: StringBuilder sb = new StringBuilder();

我试图从一个SQL数据库中检索信息,该数据库具有类型a、B和C,例如

COL1       COL2    
A          X
A          X
A          X
A          X
A          X
B          X
B          X
B          X
C          X
C          X
C          X  
我有以下代码:

StringBuilder sb = new StringBuilder();
        string line = "";
        string d = ",";
        foreach (DataColumn c in T.Columns)
        {
            line = line + c.ColumnName + d;
        }
        sb.AppendLine(line);
        foreach (DataRow r in T.Rows)
        {
            line = "";
            for (int i = 0; i < T.Columns.Count; i++)
            {
                DataRow R = T.Rows[i];
                if (R[0].ToString() != "A" )
                {
                    break;
                }
                line = line + r[i].ToString() + d;
            }
            sb.AppendLine(line);
        }

        File.WriteAllText(filePath, sb.ToString());
StringBuilder sb=新建StringBuilder();
字符串行=”;
字符串d=“,”;
foreach(T.Columns中的数据列c)
{
line=line+c.ColumnName+d;
}
给某人加上一行(一行);
foreach(T.Rows中的数据行r)
{
第“”行;
对于(int i=0;i
当我运行此程序并尝试获取输出(一个.csv文件)时,它会返回所有行以及a、B和C值,而我只希望它返回a值并停止


有什么建议吗?

只需检查第一列即可决定是否输出该行

foreach (DataRow r in T.Rows)
{
    if(r[0]=="A")
    {
        line = "";
        for (int i = 0; i < T.Columns.Count; i++)
        {
            line = line + r[i].ToString() + d;
        }
        sb.AppendLine(line);
    }
}
File.WriteAllText(filePath, sb.ToString());
foreach(T.Rows中的数据行r)
{
如果(r[0]=“A”)
{
第“”行;
对于(int i=0;i
如果您的行已排序,并且您知道可以在第一行不以A开头后停止:

foreach (DataRow r in T.Rows)
{
    if(r[0]!="A") break;

    line = "";
    for (int i = 0; i < T.Columns.Count; i++)
    {
        line = line + r[i].ToString() + d;
    }
    sb.AppendLine(line);
}
File.WriteAllText(filePath, sb.ToString());
foreach(T.Rows中的数据行r)
{
如果(r[0]!=“A”)中断;
第“”行;
对于(int i=0;i
put it line=line+r[i].ToString()+d;在if(R[0].ToString()=“A”)语句中并从itIf中删除break如果
i
是列的索引,那么
DataRow R=T.Rows[i]
的确切意义是什么?如果有一行五列呢?这将引发一个异常。很抱歉,juharr,我将为您更新代码,以便您可以看到完整的类。看到更多的代码将无法澄清您为什么在行上使用列索引。rashfmnb,当我尝试返回日期时,出于某种原因Hi Steven我不得不将r[0]更改为r[0]。ToString()我希望它能起作用,但它很有魅力,非常感谢