我是C#和SQL的新手,我正在使用Windows窗体。
我的表格MyTable
有20
columns
,我们说我们不知道列名。
我想说我想读取第13列的数据。
任何人都知道如何根据索引读取某个column
的所有数据,我的意思是如何从column
数字读取数据?
谢谢。
答案 0 :(得分:1)
你有两个选择。第一种是读取表的元数据并确定所需列的名称。
第二种是使用select *
,然后在每行中选择第n个返回值。
但是,对于不想知道列名的应用程序存在一些疑问。按位置访问列是个坏主意。实际上,SQL语言中的一个位置 - 使用ORDER BY
中的位置 - 已在标准中弃用。
答案 1 :(得分:1)
使用SqlConnection
和SqlCommand
时,您可以生成一个数据阅读器,允许您按索引接近列值(每行)。
出于示例的目的,我假设您期望string
值,但解决方案类似于任何其他类型。
List<String> column14Values = new List<String>();
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using(var command = new SqlCommand(myQuery, connection))
{
var reader = command.ExecuteReader();
while(reader.Read())
{
string theFourteenthColumnValue = reader.GetFieldValue<string>(13);
column14Values.Add(theFourteenthColumnValue);
}
}
}
return column14Values;
我高度建议更改SQL SELECT
语句,只返回所需的列;这将大大减少从数据库返回的数据量。
我的解决方案有效,直接回答了您的问题;但它不是检索单个列数据的最佳解决方案。