如何获取 ado.net 中的特定列值
How to get specific column value in ado.net
我有一个 sql 查询,结果为
Column 1 : Column 2
-350000 : -349000
-217500 : -565500
我正在尝试获取 2nd Row
的 2nd Column
的值
即-565500
请告诉我怎样才能做到这一点
你有多种方式,例如:
用一个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;
}
}
}
}
如果您只想要该值,最好的选择是首先 select 只需要该值。
我有一个 sql 查询,结果为
Column 1 : Column 2
-350000 : -349000
-217500 : -565500
我正在尝试获取 2nd Row
2nd Column
的值
即-565500
请告诉我怎样才能做到这一点
你有多种方式,例如:
用一个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;
}
}
}
}
如果您只想要该值,最好的选择是首先 select 只需要该值。