如何生成包含所有列信息的字符串数组。 该查询将返回包含多列的单行
var rowLines = new List<string>();
try
{
using (SqlConnection connection = new SqlConnection(GetConnectionString()))
{
string query = "SELECT I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15 FROM LABEL_OUT WHERE LABEL_NAME='" + labelName + "'";
using (SqlCommand command = new SqlCommand(query, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
rowLines.Add(reader[0].ToString());
}
}
}
}
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(ex.Message);
}
此处rowLines将包含所有列值,例如I1,I2,..... I15
答案 0 :(得分:5)
可能最简单的方法是使用DbDataReader.GetValues(object[])
,它使用来自每一列的值填充一个预先存在的数组:
var vals = new object[reader.FieldCount];
while (reader.Read())
{
reader.GetValues(vals);
// ... do something with the values
}
答案 1 :(得分:2)
如果您确定只行一行,则可以使用reader
在FieldCount
上循环,然后将每个元素添加到List<string>
上。最后,您可以将其返回为array
。
var rowLines = new List<string>();
if (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
rowLines.Add(reader.IsDBNull(i) ? string.Empty : reader[i].ToString());
}
}
return rowLines.ToArray();