从数据表循环遍历特定列

  • 本文关键字:遍历 数据表 循环 c# .net
  • 更新时间 :
  • 英文 :


我有以下代码:

using (connection = new SqlConnection("sql connection goes here"))
{
    using(command = new SqlCommand(@"SELECT col1, col2, col3 FROM table1 WHERE col1 = @col1 AND col2 = @col2", connection))
    {
        command.Parameters.Add("@col1", SqlDbType.VarChar, 255).Value = TextBox1.Text;
        command.Parameters.Add("@col2", SqlDbType.VarChar, 255).Value = TextBox2.Text;
        using (dataadapter = new SqlDataAdapter(command))
        {
            using (datatable = new DataTable())
            {
                dataadapter.Fill(datatable);
                int intTest = 0;
                foreach (DataRow row in datatable.Rows)
                {
                    Console.Write(intTest);
                    Console.Write(Environment.NewLine);
                    intTest += 1;
                    // replace this with another database query which uses data from above to loop through further sql queries
                }
            }
        }
    }
}

工作好。然而,我不知道如何取代评论部分。我基本上想从foreach循环中的特定列中读取行。如何在console.write中输入特定列的值?

这里的很多信息都是适用的:获取数据值到字符串?

您可以使用:

获取特定的列值
row["ColumnName"]

因此,例如,如果您为每行写入"FirstName"的值,它可能看起来像:

foreach (DataRow row in datatable.Rows)
                {
                    Console.Write(intTest);
                    Console.Write(Environment.NewLine);
                    intTest += 1;
                   Console.WriteLine(row["FirstName"]);
                }

我上面提到的帖子提到ItemArray属性,如果这更适用于你的情况。@Daniel上面关于Field属性的评论也很好,因为我上面的例子假设你知道类型是字符串,这当然是一个很大的假设。

当然,您总是希望确保检查列是否存在,这样就不会得到错误。如果要通过连接列中的值来构建一个大字符串值,请确保使用StringBuilder类,这样就不会浪费资源反复进行字符串连接。

最新更新