C# 是否将多个列值从SqlReader复制到数组?
如何生成包含所有列信息的字符串数组。 此查询将返回包含多列的单行C# 是否将多个列值从SqlReader复制到数组?,c#,sql,C#,Sql,如何生成包含所有列信息的字符串数组。 此查询将返回包含多列的单行 var rowLines = new List<string>(); try { using (SqlConnection connection = new SqlConnection(GetConnectionString())) { string query = "SELECT I1,I2,I3,I4,
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);
}
var rowLines=new List();
尝试
{
使用(SqlConnection=newsqlconnection(GetConnectionString()))
{
string query=“从LABEL_OUT中选择I1、I2、I3、I4、I5、I6、I7、I8、I9、I10、I11、I12、I13、I14、I15,其中LABEL_NAME='“+labelName+”;
使用(SqlCommand=newsqlcommand(查询、连接))
{
connection.Open();
使用(SqlDataReader=command.ExecuteReader())
{
while(reader.Read())
{
添加(读取器[0].ToString());
}
}
}
}
}
捕获(例外情况除外)
{
System.Windows.MessageBox.Show(例如Message);
}
在这里,行将包含所有列值,如I1、I2、…I15如果您确定只取一行,则可以使用
字段计数在读取器上循环,并将每个元素添加到列表上。最后,您可以将其作为数组
返回
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();
var rowLines=new List();
if(reader.Read())
{
对于(int i=0;i
最简单的方法可能是使用DbDataReader.GetValues(object[])
,它用每列中的值填充预先存在的数组:
var vals = new object[reader.FieldCount];
while (reader.Read())
{
reader.GetValues(vals);
// ... do something with the values
}
您还应该放置SqlConnection
和SqlCommand
,以确保正确释放资源。您已经将第一列添加到列表中。问题是什么?以同样的方式添加其他列。或者使用datasetI。我想你忘记告诉预期的结果了output@DreamTeK数据集的次数是解决任何问题的好方法,但问题的数量却非常小。。。