如何在ado.net中获取特定的列值

时间:2015-11-25 10:25:40

标签: c# sql sql-server datatable sqldatareader

我有一个sql查询,其结果为

Column 1   : Column 2
-350000    : -349000
-217500    : -565500

我想获得2nd Column

2nd Row

-565500

请告诉我如何实现这个目标

1 个答案:

答案 0 :(得分:0)

您有多种方式,例如:

使用SqlDataAdapter填充DataTable

DataTable table = new DataTable();
using (var con = new SqlConnection("connection string"))
using (var da = new SqlDataAdapter("Sql-Query", con))
    da.Fill(table);
object secondRowSecondColumnValue = table.Rows[1][1];

如果您知道它是int

int value = table.Rows[1].Field<int>(1);

使用SqlDataReader不太简洁:

int? value = null;
using (var con = new SqlConnection("connection string"))
using(var cmd = new SqlCommand("Sql-Query", con))
{
    con.Open();
    int row = 0;
    using (var rd = cmd.ExecuteReader())
    {
        while (rd.Read())
        {
            row++;
           if (row == 2)
           {
               value = rd.GetInt32(1);
               break;
           }
        }
    }
}

如果您只想要该值,最好的选择是首先仅选择此值。